package com.anjiplus.template.gaea.business.modules.opcua.controller;

import com.anji.plus.gaea.cache.CacheHelper;
import com.anjiplus.template.gaea.business.modules.opcua.dao.CabinetValue;
import com.anjiplus.template.gaea.business.modules.opcua.dao.entity.OpcTagValue;
import com.anjiplus.template.gaea.business.modules.opcua.service.OpcTagValueService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.milo.opcua.sdk.client.OpcUaClient;
import org.eclipse.milo.opcua.sdk.client.api.identity.AnonymousProvider;
import org.eclipse.milo.opcua.sdk.client.api.identity.IdentityProvider;
import org.eclipse.milo.opcua.sdk.client.api.identity.UsernameProvider;
import org.eclipse.milo.opcua.sdk.client.api.subscriptions.UaSubscription;
import org.eclipse.milo.opcua.sdk.client.api.subscriptions.UaSubscriptionManager;
import org.eclipse.milo.opcua.sdk.client.nodes.UaNode;
import org.eclipse.milo.opcua.sdk.client.subscriptions.ManagedDataItem;
import org.eclipse.milo.opcua.sdk.client.subscriptions.ManagedSubscription;
import org.eclipse.milo.opcua.stack.core.AttributeId;
import org.eclipse.milo.opcua.stack.core.Identifiers;
import org.eclipse.milo.opcua.stack.core.UaException;
import org.eclipse.milo.opcua.stack.core.security.SecurityPolicy;
import org.eclipse.milo.opcua.stack.core.types.builtin.*;
import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger;
import org.eclipse.milo.opcua.stack.core.types.enumerated.MonitoringMode;
import org.eclipse.milo.opcua.stack.core.types.enumerated.TimestampsToReturn;
import org.eclipse.milo.opcua.stack.core.types.structured.MonitoredItemCreateRequest;
import org.eclipse.milo.opcua.stack.core.types.structured.MonitoringParameters;
import org.eclipse.milo.opcua.stack.core.types.structured.ReadValueId;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;

@Slf4j
//@Data
@Controller
public class OpcClientController {

//    @Value("${opc.url}")
//    private String endPointUrl;
//    @Value("${opc.username}")
//    private String endPointUsername;
//    @Value("${opc.password}")
//    private String endPointPassword;
    private String endPointUrl = "opc.tcp://127.0.0.1:49320";
//    private final static String endPointUrl = "opc.tcp://10.159.106.1:49310";

    @Autowired
    private CacheHelper cacheHelper;

    // 批量订阅namespaceIndex默认为2
    private int batchNamespaceIndex = 2;

    // 批量订阅时的identifiers
    List<String> identifiers = new ArrayList<>();

    //此处是解决无法注入的关键
    private static ApplicationContext applicationContext;
    //你要注入的service或者dao
    private OpcTagValueService opcTagValueService;
    public static void setApplicationContext(ApplicationContext applicationContext) {
        OpcClientController.applicationContext = applicationContext;
    }

    /**
     * 获取所有数据源
     * @return
     */
    @GetMapping("/queryCabinetValue/{cabinet}")
    @ResponseBody
    public CabinetValue queryCabinetValue(@PathVariable String cabinet) {
        if(opcTagValueService == null){
            opcTagValueService = applicationContext.getBean(OpcTagValueService.class);
        }
        CabinetValue cabinetValue =new CabinetValue();

        //单独处理16-17-18号柜子，根据时间判断
        //保证一分钟内，所有的请求都是同一个柜子。否则前端打过来的请求分批过来，分不清哪个柜子了
        //16-17-18号柜子单独处理：返回页面标题，且自动刷新组装每个柜子的数据，用于配合前端不翻页刷新3个柜子的数据
        if("16".equals(cabinet) || "17".equals(cabinet) || "18".equals(cabinet)){
            Date now = new Date();
            int minutes = now.getMinutes();
            int flag = (minutes + 1) % 3;
            System.out.println("当前分钟数（0-59）：" + minutes);
            System.out.println("===========:" + flag);
            if(flag == 0){
                cabinet = "16";
            }else if(flag == 1){
                cabinet = "17";
            }if(flag == 2){
                cabinet = "18";
            }
        }

        if("1".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.1a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.1a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.1a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.1A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.1a_In_EndYear"),getValueFromDB("cs.cs.1a_IN_ENDMonth"),getValueFromDB("cs.cs.1a_IN_ENDDay"),
                    getValueFromDB("cs.cs.1a_IN_ENDHour"),getValueFromDB("cs.cs.1a_IN_ENDMinute"),getValueFromDB("cs.cs.1a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.1a_OUT_BEGYear"),getValueFromDB("cs.cs.1a_OUT_BEGMonth"),getValueFromDB("cs.cs.1a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.1a_OUT_BEGHour"),getValueFromDB("cs.cs.1a_OUT_BEGMinute"),getValueFromDB("cs.cs.1a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.1a_STORETMHOUR"),getValueFromDB("cs.cs.1a_STORETMMinute"),getValueFromDB("cs.cs.1a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.1a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.1a_CheckStatus")));

            
            cabinetValue.setBrandB(getValueFromDB("cs.cs.1b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.1b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.1b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.1b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.1b_In_EndYear"),getValueFromDB("cs.cs.1b_IN_ENDMonth"),getValueFromDB("cs.cs.1b_IN_ENDDay"),
                    getValueFromDB("cs.cs.1b_IN_ENDHour"),getValueFromDB("cs.cs.1b_IN_ENDMinute"),getValueFromDB("cs.cs.1b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.1b_OUT_BEGYear"),getValueFromDB("cs.cs.1b_OUT_BEGMonth"),getValueFromDB("cs.cs.1b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.1b_OUT_BEGHour"),getValueFromDB("cs.cs.1b_OUT_BEGMinute"),getValueFromDB("cs.cs.1b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.1b_STORETMHOUR"),getValueFromDB("cs.cs.1b_STORETMMinute"),getValueFromDB("cs.cs.1b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.1b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.1b_CheckStatus")));


        }else if("2".equals(cabinet)){

            cabinetValue.setBrandA(getValueFromDB("cs.cs.2a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.2a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.2a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.2A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.2a_In_EndYear"),getValueFromDB("cs.cs.2a_IN_ENDMonth"),getValueFromDB("cs.cs.2a_IN_ENDDay"),
                    getValueFromDB("cs.cs.2a_IN_ENDHour"),getValueFromDB("cs.cs.2a_IN_ENDMinute"),getValueFromDB("cs.cs.2a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.2a_OUT_BEGYear"),getValueFromDB("cs.cs.2a_OUT_BEGMonth"),getValueFromDB("cs.cs.2a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.2a_OUT_BEGHour"),getValueFromDB("cs.cs.2a_OUT_BEGMinute"),getValueFromDB("cs.cs.2a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.2a_STORETMHOUR"),getValueFromDB("cs.cs.2a_STORETMMinute"),getValueFromDB("cs.cs.2a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.2a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.2a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.2b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.2b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.2b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.2b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.2b_In_EndYear"),getValueFromDB("cs.cs.2b_IN_ENDMonth"),getValueFromDB("cs.cs.2b_IN_ENDDay"),
                    getValueFromDB("cs.cs.2b_IN_ENDHour"),getValueFromDB("cs.cs.2b_IN_ENDMinute"),getValueFromDB("cs.cs.2b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.2b_OUT_BEGYear"),getValueFromDB("cs.cs.2b_OUT_BEGMonth"),getValueFromDB("cs.cs.2b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.2b_OUT_BEGHour"),getValueFromDB("cs.cs.2b_OUT_BEGMinute"),getValueFromDB("cs.cs.2b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.2b_STORETMHOUR"),getValueFromDB("cs.cs.2b_STORETMMinute"),getValueFromDB("cs.cs.2b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.2b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.2b_CheckStatus")));
        }else if("3".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.3a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.3a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.3a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.3A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.3a_In_EndYear"),getValueFromDB("cs.cs.3a_IN_ENDMonth"),getValueFromDB("cs.cs.3a_IN_ENDDay"),
                    getValueFromDB("cs.cs.3a_IN_ENDHour"),getValueFromDB("cs.cs.3a_IN_ENDMinute"),getValueFromDB("cs.cs.3a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.3a_OUT_BEGYear"),getValueFromDB("cs.cs.3a_OUT_BEGMonth"),getValueFromDB("cs.cs.3a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.3a_OUT_BEGHour"),getValueFromDB("cs.cs.3a_OUT_BEGMinute"),getValueFromDB("cs.cs.3a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.3a_STORETMHOUR"),getValueFromDB("cs.cs.3a_STORETMMinute"),getValueFromDB("cs.cs.3a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.3a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.3a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.3b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.3b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.3b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.3b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.3b_In_EndYear"),getValueFromDB("cs.cs.3b_IN_ENDMonth"),getValueFromDB("cs.cs.3b_IN_ENDDay"),
                    getValueFromDB("cs.cs.3b_IN_ENDHour"),getValueFromDB("cs.cs.3b_IN_ENDMinute"),getValueFromDB("cs.cs.3b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.3b_OUT_BEGYear"),getValueFromDB("cs.cs.3b_OUT_BEGMonth"),getValueFromDB("cs.cs.3b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.3b_OUT_BEGHour"),getValueFromDB("cs.cs.3b_OUT_BEGMinute"),getValueFromDB("cs.cs.3b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.3b_STORETMHOUR"),getValueFromDB("cs.cs.3b_STORETMMinute"),getValueFromDB("cs.cs.3b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.3b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.3b_CheckStatus")));
        }else if("4".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.4a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.4a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.4a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.4A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.4a_In_EndYear"),getValueFromDB("cs.cs.4a_IN_ENDMonth"),getValueFromDB("cs.cs.4a_IN_ENDDay"),
                    getValueFromDB("cs.cs.4a_IN_ENDHour"),getValueFromDB("cs.cs.4a_IN_ENDMinute"),getValueFromDB("cs.cs.4a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.4a_OUT_BEGYear"),getValueFromDB("cs.cs.4a_OUT_BEGMonth"),getValueFromDB("cs.cs.4a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.4a_OUT_BEGHour"),getValueFromDB("cs.cs.4a_OUT_BEGMinute"),getValueFromDB("cs.cs.4a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.4a_STORETMHOUR"),getValueFromDB("cs.cs.4a_STORETMMinute"),getValueFromDB("cs.cs.4a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.4a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.4a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.4b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.4b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.4b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.4b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.4b_In_EndYear"),getValueFromDB("cs.cs.4b_IN_ENDMonth"),getValueFromDB("cs.cs.4b_IN_ENDDay"),
                    getValueFromDB("cs.cs.4b_IN_ENDHour"),getValueFromDB("cs.cs.4b_IN_ENDMinute"),getValueFromDB("cs.cs.4b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.4b_OUT_BEGYear"),getValueFromDB("cs.cs.4b_OUT_BEGMonth"),getValueFromDB("cs.cs.4b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.4b_OUT_BEGHour"),getValueFromDB("cs.cs.4b_OUT_BEGMinute"),getValueFromDB("cs.cs.4b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.4b_STORETMHOUR"),getValueFromDB("cs.cs.4b_STORETMMinute"),getValueFromDB("cs.cs.4b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.4b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.4b_CheckStatus")));
        }else if("5".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.5a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.5a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.5a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.5A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.5a_In_EndYear"),getValueFromDB("cs.cs.5a_IN_ENDMonth"),getValueFromDB("cs.cs.5a_IN_ENDDay"),
                    getValueFromDB("cs.cs.5a_IN_ENDHour"),getValueFromDB("cs.cs.5a_IN_ENDMinute"),getValueFromDB("cs.cs.5a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.5a_OUT_BEGYear"),getValueFromDB("cs.cs.5a_OUT_BEGMonth"),getValueFromDB("cs.cs.5a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.5a_OUT_BEGHour"),getValueFromDB("cs.cs.5a_OUT_BEGMinute"),getValueFromDB("cs.cs.5a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.5a_STORETMHOUR"),getValueFromDB("cs.cs.5a_STORETMMinute"),getValueFromDB("cs.cs.5a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.5a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.5a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.5b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.5b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.5b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.5b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.5b_In_EndYear"),getValueFromDB("cs.cs.5b_IN_ENDMonth"),getValueFromDB("cs.cs.5b_IN_ENDDay"),
                    getValueFromDB("cs.cs.5b_IN_ENDHour"),getValueFromDB("cs.cs.5b_IN_ENDMinute"),getValueFromDB("cs.cs.5b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.5b_OUT_BEGYear"),getValueFromDB("cs.cs.5b_OUT_BEGMonth"),getValueFromDB("cs.cs.5b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.5b_OUT_BEGHour"),getValueFromDB("cs.cs.5b_OUT_BEGMinute"),getValueFromDB("cs.cs.5b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.5b_STORETMHOUR"),getValueFromDB("cs.cs.5b_STORETMMinute"),getValueFromDB("cs.cs.5b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.5b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.5b_CheckStatus")));
        }else if("6".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.6a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.6a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.6a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.6A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.6a_In_EndYear"),getValueFromDB("cs.cs.6a_IN_ENDMonth"),getValueFromDB("cs.cs.6a_IN_ENDDay"),
                    getValueFromDB("cs.cs.6a_IN_ENDHour"),getValueFromDB("cs.cs.6a_IN_ENDMinute"),getValueFromDB("cs.cs.6a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.6a_OUT_BEGYear"),getValueFromDB("cs.cs.6a_OUT_BEGMonth"),getValueFromDB("cs.cs.6a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.6a_OUT_BEGHour"),getValueFromDB("cs.cs.6a_OUT_BEGMinute"),getValueFromDB("cs.cs.6a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.6a_STORETMHOUR"),getValueFromDB("cs.cs.6a_STORETMMinute"),getValueFromDB("cs.cs.6a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.6a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.6a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.6b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.6b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.6b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.6b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.6b_In_EndYear"),getValueFromDB("cs.cs.6b_IN_ENDMonth"),getValueFromDB("cs.cs.6b_IN_ENDDay"),
                    getValueFromDB("cs.cs.6b_IN_ENDHour"),getValueFromDB("cs.cs.6b_IN_ENDMinute"),getValueFromDB("cs.cs.6b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.6b_OUT_BEGYear"),getValueFromDB("cs.cs.6b_OUT_BEGMonth"),getValueFromDB("cs.cs.6b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.6b_OUT_BEGHour"),getValueFromDB("cs.cs.6b_OUT_BEGMinute"),getValueFromDB("cs.cs.6b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.6b_STORETMHOUR"),getValueFromDB("cs.cs.6b_STORETMMinute"),getValueFromDB("cs.cs.6b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.6b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.6b_CheckStatus")));
        }else if("7".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.7a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.7a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.7a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.7A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.7a_In_EndYear"),getValueFromDB("cs.cs.7a_IN_ENDMonth"),getValueFromDB("cs.cs.7a_IN_ENDDay"),
                    getValueFromDB("cs.cs.7a_IN_ENDHour"),getValueFromDB("cs.cs.7a_IN_ENDMinute"),getValueFromDB("cs.cs.7a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.7a_OUT_BEGYear"),getValueFromDB("cs.cs.7a_OUT_BEGMonth"),getValueFromDB("cs.cs.7a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.7a_OUT_BEGHour"),getValueFromDB("cs.cs.7a_OUT_BEGMinute"),getValueFromDB("cs.cs.7a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.7a_STORETMHOUR"),getValueFromDB("cs.cs.7a_STORETMMinute"),getValueFromDB("cs.cs.7a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.7a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.7a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.7b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.7b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.7b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.7b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.7b_In_EndYear"),getValueFromDB("cs.cs.7b_IN_ENDMonth"),getValueFromDB("cs.cs.7b_IN_ENDDay"),
                    getValueFromDB("cs.cs.7b_IN_ENDHour"),getValueFromDB("cs.cs.7b_IN_ENDMinute"),getValueFromDB("cs.cs.7b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.7b_OUT_BEGYear"),getValueFromDB("cs.cs.7b_OUT_BEGMonth"),getValueFromDB("cs.cs.7b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.7b_OUT_BEGHour"),getValueFromDB("cs.cs.7b_OUT_BEGMinute"),getValueFromDB("cs.cs.7b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.7b_STORETMHOUR"),getValueFromDB("cs.cs.7b_STORETMMinute"),getValueFromDB("cs.cs.7b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.7b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.7b_CheckStatus")));
        }else if("8".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.8a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.8a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.8a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.8A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.8a_In_EndYear"),getValueFromDB("cs.cs.8a_IN_ENDMonth"),getValueFromDB("cs.cs.8a_IN_ENDDay"),
                    getValueFromDB("cs.cs.8a_IN_ENDHour"),getValueFromDB("cs.cs.8a_IN_ENDMinute"),getValueFromDB("cs.cs.8a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.8a_OUT_BEGYear"),getValueFromDB("cs.cs.8a_OUT_BEGMonth"),getValueFromDB("cs.cs.8a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.8a_OUT_BEGHour"),getValueFromDB("cs.cs.8a_OUT_BEGMinute"),getValueFromDB("cs.cs.8a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.8a_STORETMHOUR"),getValueFromDB("cs.cs.8a_STORETMMinute"),getValueFromDB("cs.cs.8a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.8a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.8a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.8b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.8b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.8b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.8b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.8b_In_EndYear"),getValueFromDB("cs.cs.8b_IN_ENDMonth"),getValueFromDB("cs.cs.8b_IN_ENDDay"),
                    getValueFromDB("cs.cs.8b_IN_ENDHour"),getValueFromDB("cs.cs.8b_IN_ENDMinute"),getValueFromDB("cs.cs.8b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.8b_OUT_BEGYear"),getValueFromDB("cs.cs.8b_OUT_BEGMonth"),getValueFromDB("cs.cs.8b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.8b_OUT_BEGHour"),getValueFromDB("cs.cs.8b_OUT_BEGMinute"),getValueFromDB("cs.cs.8b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.8b_STORETMHOUR"),getValueFromDB("cs.cs.8b_STORETMMinute"),getValueFromDB("cs.cs.8b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.8b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.8b_CheckStatus")));
        }else if("9".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.9a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.9a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.9a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.9A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.9a_In_EndYear"),getValueFromDB("cs.cs.9a_IN_ENDMonth"),getValueFromDB("cs.cs.9a_IN_ENDDay"),
                    getValueFromDB("cs.cs.9a_IN_ENDHour"),getValueFromDB("cs.cs.9a_IN_ENDMinute"),getValueFromDB("cs.cs.9a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.9a_OUT_BEGYear"),getValueFromDB("cs.cs.9a_OUT_BEGMonth"),getValueFromDB("cs.cs.9a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.9a_OUT_BEGHour"),getValueFromDB("cs.cs.9a_OUT_BEGMinute"),getValueFromDB("cs.cs.9a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.9a_STORETMHOUR"),getValueFromDB("cs.cs.9a_STORETMMinute"),getValueFromDB("cs.cs.9a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.9a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.9a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.9b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.9b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.9b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.9b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.9b_In_EndYear"),getValueFromDB("cs.cs.9b_IN_ENDMonth"),getValueFromDB("cs.cs.9b_IN_ENDDay"),
                    getValueFromDB("cs.cs.9b_IN_ENDHour"),getValueFromDB("cs.cs.9b_IN_ENDMinute"),getValueFromDB("cs.cs.9b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.9b_OUT_BEGYear"),getValueFromDB("cs.cs.9b_OUT_BEGMonth"),getValueFromDB("cs.cs.9b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.9b_OUT_BEGHour"),getValueFromDB("cs.cs.9b_OUT_BEGMinute"),getValueFromDB("cs.cs.9b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.9b_STORETMHOUR"),getValueFromDB("cs.cs.9b_STORETMMinute"),getValueFromDB("cs.cs.9b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.9b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.9b_CheckStatus")));
        }else if("10".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.10a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.10a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.10a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.10A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.10a_In_EndYear"),getValueFromDB("cs.cs.10a_IN_ENDMonth"),getValueFromDB("cs.cs.10a_IN_ENDDay"),
                    getValueFromDB("cs.cs.10a_IN_ENDHour"),getValueFromDB("cs.cs.10a_IN_ENDMinute"),getValueFromDB("cs.cs.10a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.10a_OUT_BEGYear"),getValueFromDB("cs.cs.10a_OUT_BEGMonth"),getValueFromDB("cs.cs.10a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.10a_OUT_BEGHour"),getValueFromDB("cs.cs.10a_OUT_BEGMinute"),getValueFromDB("cs.cs.10a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.10a_STORETMHOUR"),getValueFromDB("cs.cs.10a_STORETMMinute"),getValueFromDB("cs.cs.10a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.10a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.10a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.10b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.10b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.10b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.10b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.10b_In_EndYear"),getValueFromDB("cs.cs.10b_IN_ENDMonth"),getValueFromDB("cs.cs.10b_IN_ENDDay"),
                    getValueFromDB("cs.cs.10b_IN_ENDHour"),getValueFromDB("cs.cs.10b_IN_ENDMinute"),getValueFromDB("cs.cs.10b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.10b_OUT_BEGYear"),getValueFromDB("cs.cs.10b_OUT_BEGMonth"),getValueFromDB("cs.cs.10b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.10b_OUT_BEGHour"),getValueFromDB("cs.cs.10b_OUT_BEGMinute"),getValueFromDB("cs.cs.10b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.10b_STORETMHOUR"),getValueFromDB("cs.cs.10b_STORETMMinute"),getValueFromDB("cs.cs.10b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.10b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.10b_CheckStatus")));
        }else if("11".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.11a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.11a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.11a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.11A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.11a_In_EndYear"),getValueFromDB("cs.cs.11a_IN_ENDMonth"),getValueFromDB("cs.cs.11a_IN_ENDDay"),
                    getValueFromDB("cs.cs.11a_IN_ENDHour"),getValueFromDB("cs.cs.11a_IN_ENDMinute"),getValueFromDB("cs.cs.11a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.11a_OUT_BEGYear"),getValueFromDB("cs.cs.11a_OUT_BEGMonth"),getValueFromDB("cs.cs.11a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.11a_OUT_BEGHour"),getValueFromDB("cs.cs.11a_OUT_BEGMinute"),getValueFromDB("cs.cs.11a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.11a_STORETMHOUR"),getValueFromDB("cs.cs.11a_STORETMMinute"),getValueFromDB("cs.cs.11a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.11a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.11a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.11b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.11b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.11b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.11b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.11b_In_EndYear"),getValueFromDB("cs.cs.11b_IN_ENDMonth"),getValueFromDB("cs.cs.11b_IN_ENDDay"),
                    getValueFromDB("cs.cs.11b_IN_ENDHour"),getValueFromDB("cs.cs.11b_IN_ENDMinute"),getValueFromDB("cs.cs.11b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.11b_OUT_BEGYear"),getValueFromDB("cs.cs.11b_OUT_BEGMonth"),getValueFromDB("cs.cs.11b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.11b_OUT_BEGHour"),getValueFromDB("cs.cs.11b_OUT_BEGMinute"),getValueFromDB("cs.cs.11b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.11b_STORETMHOUR"),getValueFromDB("cs.cs.11b_STORETMMinute"),getValueFromDB("cs.cs.11b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.11b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.11b_CheckStatus")));
        }else if("12".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.12a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.12a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.12a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.12A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.12a_In_EndYear"),getValueFromDB("cs.cs.12a_IN_ENDMonth"),getValueFromDB("cs.cs.12a_IN_ENDDay"),
                    getValueFromDB("cs.cs.12a_IN_ENDHour"),getValueFromDB("cs.cs.12a_IN_ENDMinute"),getValueFromDB("cs.cs.12a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.12a_OUT_BEGYear"),getValueFromDB("cs.cs.12a_OUT_BEGMonth"),getValueFromDB("cs.cs.12a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.12a_OUT_BEGHour"),getValueFromDB("cs.cs.12a_OUT_BEGMinute"),getValueFromDB("cs.cs.12a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.12a_STORETMHOUR"),getValueFromDB("cs.cs.12a_STORETMMinute"),getValueFromDB("cs.cs.12a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.12a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.12a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.12b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.12b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.12b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.12b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.12b_In_EndYear"),getValueFromDB("cs.cs.12b_IN_ENDMonth"),getValueFromDB("cs.cs.12b_IN_ENDDay"),
                    getValueFromDB("cs.cs.12b_IN_ENDHour"),getValueFromDB("cs.cs.12b_IN_ENDMinute"),getValueFromDB("cs.cs.12b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.12b_OUT_BEGYear"),getValueFromDB("cs.cs.12b_OUT_BEGMonth"),getValueFromDB("cs.cs.12b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.12b_OUT_BEGHour"),getValueFromDB("cs.cs.12b_OUT_BEGMinute"),getValueFromDB("cs.cs.12b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.12b_STORETMHOUR"),getValueFromDB("cs.cs.12b_STORETMMinute"),getValueFromDB("cs.cs.12b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.12b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.12b_CheckStatus")));
        }else if("13".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.13a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.13a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.13a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.13A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.13a_In_EndYear"),getValueFromDB("cs.cs.13a_IN_ENDMonth"),getValueFromDB("cs.cs.13a_IN_ENDDay"),
                    getValueFromDB("cs.cs.13a_IN_ENDHour"),getValueFromDB("cs.cs.13a_IN_ENDMinute"),getValueFromDB("cs.cs.13a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.13a_OUT_BEGYear"),getValueFromDB("cs.cs.13a_OUT_BEGMonth"),getValueFromDB("cs.cs.13a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.13a_OUT_BEGHour"),getValueFromDB("cs.cs.13a_OUT_BEGMinute"),getValueFromDB("cs.cs.13a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.13a_STORETMHOUR"),getValueFromDB("cs.cs.13a_STORETMMinute"),getValueFromDB("cs.cs.13a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.13a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.13a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.13b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.13b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.13b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.13b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.13b_In_EndYear"),getValueFromDB("cs.cs.13b_IN_ENDMonth"),getValueFromDB("cs.cs.13b_IN_ENDDay"),
                    getValueFromDB("cs.cs.13b_IN_ENDHour"),getValueFromDB("cs.cs.13b_IN_ENDMinute"),getValueFromDB("cs.cs.13b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.13b_OUT_BEGYear"),getValueFromDB("cs.cs.13b_OUT_BEGMonth"),getValueFromDB("cs.cs.13b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.13b_OUT_BEGHour"),getValueFromDB("cs.cs.13b_OUT_BEGMinute"),getValueFromDB("cs.cs.13b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.13b_STORETMHOUR"),getValueFromDB("cs.cs.13b_STORETMMinute"),getValueFromDB("cs.cs.13b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.13b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.13b_CheckStatus")));
        }else if("14".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.14a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.14a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.14a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.14A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.14a_In_EndYear"),getValueFromDB("cs.cs.14a_IN_ENDMonth"),getValueFromDB("cs.cs.14a_IN_ENDDay"),
                    getValueFromDB("cs.cs.14a_IN_ENDHour"),getValueFromDB("cs.cs.14a_IN_ENDMinute"),getValueFromDB("cs.cs.14a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.14a_OUT_BEGYear"),getValueFromDB("cs.cs.14a_OUT_BEGMonth"),getValueFromDB("cs.cs.14a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.14a_OUT_BEGHour"),getValueFromDB("cs.cs.14a_OUT_BEGMinute"),getValueFromDB("cs.cs.14a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.14a_STORETMHOUR"),getValueFromDB("cs.cs.14a_STORETMMinute"),getValueFromDB("cs.cs.14a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.14a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.14a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.14b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.14b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.14b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.14b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.14b_In_EndYear"),getValueFromDB("cs.cs.14b_IN_ENDMonth"),getValueFromDB("cs.cs.14b_IN_ENDDay"),
                    getValueFromDB("cs.cs.14b_IN_ENDHour"),getValueFromDB("cs.cs.14b_IN_ENDMinute"),getValueFromDB("cs.cs.14b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.14b_OUT_BEGYear"),getValueFromDB("cs.cs.14b_OUT_BEGMonth"),getValueFromDB("cs.cs.14b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.14b_OUT_BEGHour"),getValueFromDB("cs.cs.14b_OUT_BEGMinute"),getValueFromDB("cs.cs.14b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.14b_STORETMHOUR"),getValueFromDB("cs.cs.14b_STORETMMinute"),getValueFromDB("cs.cs.14b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.14b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.14b_CheckStatus")));
        }else if("15".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cs.cs.15a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.15a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.15a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.15A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.15a_In_EndYear"),getValueFromDB("cs.cs.15a_IN_ENDMonth"),getValueFromDB("cs.cs.15a_IN_ENDDay"),
                    getValueFromDB("cs.cs.15a_IN_ENDHour"),getValueFromDB("cs.cs.15a_IN_ENDMinute"),getValueFromDB("cs.cs.15a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.15a_OUT_BEGYear"),getValueFromDB("cs.cs.15a_OUT_BEGMonth"),getValueFromDB("cs.cs.15a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.15a_OUT_BEGHour"),getValueFromDB("cs.cs.15a_OUT_BEGMinute"),getValueFromDB("cs.cs.15a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.15a_STORETMHOUR"),getValueFromDB("cs.cs.15a_STORETMMinute"),getValueFromDB("cs.cs.15a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.15a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.15a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.15b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.15b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.15b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.15b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.15b_In_EndYear"),getValueFromDB("cs.cs.15b_IN_ENDMonth"),getValueFromDB("cs.cs.15b_IN_ENDDay"),
                    getValueFromDB("cs.cs.15b_IN_ENDHour"),getValueFromDB("cs.cs.15b_IN_ENDMinute"),getValueFromDB("cs.cs.15b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.15b_OUT_BEGYear"),getValueFromDB("cs.cs.15b_OUT_BEGMonth"),getValueFromDB("cs.cs.15b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.15b_OUT_BEGHour"),getValueFromDB("cs.cs.15b_OUT_BEGMinute"),getValueFromDB("cs.cs.15b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.15b_STORETMHOUR"),getValueFromDB("cs.cs.15b_STORETMMinute"),getValueFromDB("cs.cs.15b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.15b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.15b_CheckStatus")));
        }else if("16".equals(cabinet)){
            cabinetValue.setTitleName("16# 贮丝柜");
            cabinetValue.setBrandA(getValueFromDB("cs.cs.16a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.16a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.16a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.16A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.16a_In_EndYear"),getValueFromDB("cs.cs.16a_IN_ENDMonth"),getValueFromDB("cs.cs.16a_IN_ENDDay"),
                    getValueFromDB("cs.cs.16a_IN_ENDHour"),getValueFromDB("cs.cs.16a_IN_ENDMinute"),getValueFromDB("cs.cs.16a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.16a_OUT_BEGYear"),getValueFromDB("cs.cs.16a_OUT_BEGMonth"),getValueFromDB("cs.cs.16a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.16a_OUT_BEGHour"),getValueFromDB("cs.cs.16a_OUT_BEGMinute"),getValueFromDB("cs.cs.16a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.16a_STORETMHOUR"),getValueFromDB("cs.cs.16a_STORETMMinute"),getValueFromDB("cs.cs.16a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.16a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.16a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.16b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.16b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.16b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.16b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.16b_In_EndYear"),getValueFromDB("cs.cs.16b_IN_ENDMonth"),getValueFromDB("cs.cs.16b_IN_ENDDay"),
                    getValueFromDB("cs.cs.16b_IN_ENDHour"),getValueFromDB("cs.cs.16b_IN_ENDMinute"),getValueFromDB("cs.cs.16b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.16b_OUT_BEGYear"),getValueFromDB("cs.cs.16b_OUT_BEGMonth"),getValueFromDB("cs.cs.16b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.16b_OUT_BEGHour"),getValueFromDB("cs.cs.16b_OUT_BEGMinute"),getValueFromDB("cs.cs.16b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.16b_STORETMHOUR"),getValueFromDB("cs.cs.16b_STORETMMinute"),getValueFromDB("cs.cs.16b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.16b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.16b_CheckStatus")));
        }else if("17".equals(cabinet)){
            cabinetValue.setTitleName("17# 贮丝柜");
            cabinetValue.setBrandA(getValueFromDB("cs.cs.17a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.17a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.17a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.17A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.17a_In_EndYear"),getValueFromDB("cs.cs.17a_IN_ENDMonth"),getValueFromDB("cs.cs.17a_IN_ENDDay"),
                    getValueFromDB("cs.cs.17a_IN_ENDHour"),getValueFromDB("cs.cs.17a_IN_ENDMinute"),getValueFromDB("cs.cs.17a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.17a_OUT_BEGYear"),getValueFromDB("cs.cs.17a_OUT_BEGMonth"),getValueFromDB("cs.cs.17a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.17a_OUT_BEGHour"),getValueFromDB("cs.cs.17a_OUT_BEGMinute"),getValueFromDB("cs.cs.17a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.17a_STORETMHOUR"),getValueFromDB("cs.cs.17a_STORETMMinute"),getValueFromDB("cs.cs.17a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.17a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.17a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.17b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.17b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.17b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.17b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.17b_In_EndYear"),getValueFromDB("cs.cs.17b_IN_ENDMonth"),getValueFromDB("cs.cs.17b_IN_ENDDay"),
                    getValueFromDB("cs.cs.17b_IN_ENDHour"),getValueFromDB("cs.cs.17b_IN_ENDMinute"),getValueFromDB("cs.cs.17b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.17b_OUT_BEGYear"),getValueFromDB("cs.cs.17b_OUT_BEGMonth"),getValueFromDB("cs.cs.17b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.17b_OUT_BEGHour"),getValueFromDB("cs.cs.17b_OUT_BEGMinute"),getValueFromDB("cs.cs.17b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.17b_STORETMHOUR"),getValueFromDB("cs.cs.17b_STORETMMinute"),getValueFromDB("cs.cs.17b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.17b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.17b_CheckStatus")));
        }else if("18".equals(cabinet)){
            cabinetValue.setTitleName("18# 贮丝柜");
            cabinetValue.setBrandA(getValueFromDB("cs.cs.18a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cs.cs.18a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cs.cs.18a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp4.cp4.18A-InWeight")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cs.cs.18a_In_EndYear"),getValueFromDB("cs.cs.18a_IN_ENDMonth"),getValueFromDB("cs.cs.18a_IN_ENDDay"),
                    getValueFromDB("cs.cs.18a_IN_ENDHour"),getValueFromDB("cs.cs.18a_IN_ENDMinute"),getValueFromDB("cs.cs.18a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cs.cs.18a_OUT_BEGYear"),getValueFromDB("cs.cs.18a_OUT_BEGMonth"),getValueFromDB("cs.cs.18a_OUT_BEGDay"),
                    getValueFromDB("cs.cs.18a_OUT_BEGHour"),getValueFromDB("cs.cs.18a_OUT_BEGMinute"),getValueFromDB("cs.cs.18a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cs.cs.18a_STORETMHOUR"),getValueFromDB("cs.cs.18a_STORETMMinute"),getValueFromDB("cs.cs.18a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cs.cs.18a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cs.cs.18a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cs.cs.18b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cs.cs.18b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cs.cs.18b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp4.cp4.18b-InWeight")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cs.cs.18b_In_EndYear"),getValueFromDB("cs.cs.18b_IN_ENDMonth"),getValueFromDB("cs.cs.18b_IN_ENDDay"),
                    getValueFromDB("cs.cs.18b_IN_ENDHour"),getValueFromDB("cs.cs.18b_IN_ENDMinute"),getValueFromDB("cs.cs.18b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cs.cs.18b_OUT_BEGYear"),getValueFromDB("cs.cs.18b_OUT_BEGMonth"),getValueFromDB("cs.cs.18b_OUT_BEGDay"),
                    getValueFromDB("cs.cs.18b_OUT_BEGHour"),getValueFromDB("cs.cs.18b_OUT_BEGMinute"),getValueFromDB("cs.cs.18b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cs.cs.18b_STORETMHOUR"),getValueFromDB("cs.cs.18b_STORETMMinute"),getValueFromDB("cs.cs.18b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cs.cs.18b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cs.cs.18b_CheckStatus")));
        }else if("19".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cp2.cp2.19a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cp2.cp2.19a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cp2.cp2.19a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp2.cp2.19a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cp2.cp2.19a_In_EndYear"),getValueFromDB("cp2.cp2.19a_IN_ENDMonth"),getValueFromDB("cp2.cp2.19a_IN_ENDDay"),
                    getValueFromDB("cp2.cp2.19a_IN_ENDHour"),getValueFromDB("cp2.cp2.19a_IN_ENDMinute"),getValueFromDB("cp2.cp2.19a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cp2.cp2.19a_OUT_BEGYear"),getValueFromDB("cp2.cp2.19a_OUT_BEGMonth"),getValueFromDB("cp2.cp2.19a_OUT_BEGDay"),
                    getValueFromDB("cp2.cp2.19a_OUT_BEGHour"),getValueFromDB("cp2.cp2.19a_OUT_BEGMinute"),getValueFromDB("cp2.cp2.19a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cp2.cp2.19a_STORETMHOUR"),getValueFromDB("cp2.cp2.19a_STORETMMinute"),getValueFromDB("cp2.cp2.19a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cp2.cp2.19a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cp2.cp2.19a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cp2.cp2.19b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cp2.cp2.19b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cp2.cp2.19b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp2.cp2.19b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cp2.cp2.19b_In_EndYear"),getValueFromDB("cp2.cp2.19b_IN_ENDMonth"),getValueFromDB("cp2.cp2.19b_IN_ENDDay"),
                    getValueFromDB("cp2.cp2.19b_IN_ENDHour"),getValueFromDB("cp2.cp2.19b_IN_ENDMinute"),getValueFromDB("cp2.cp2.19b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cp2.cp2.19b_OUT_BEGYear"),getValueFromDB("cp2.cp2.19b_OUT_BEGMonth"),getValueFromDB("cp2.cp2.19b_OUT_BEGDay"),
                    getValueFromDB("cp2.cp2.19b_OUT_BEGHour"),getValueFromDB("cp2.cp2.19b_OUT_BEGMinute"),getValueFromDB("cp2.cp2.19b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cp2.cp2.19b_STORETMHOUR"),getValueFromDB("cp2.cp2.19b_STORETMMinute"),getValueFromDB("cp2.cp2.19b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cp2.cp2.19b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cp2.cp2.19b_CheckStatus")));
        }else if("20".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("cp2.cp2.20a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("cp2.cp2.20a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("cp2.cp2.20a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("cp2.cp2.20a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("cp2.cp2.20a_In_EndYear"),getValueFromDB("cp2.cp2.20a_IN_ENDMonth"),getValueFromDB("cp2.cp2.20a_IN_ENDDay"),
                    getValueFromDB("cp2.cp2.20a_IN_ENDHour"),getValueFromDB("cp2.cp2.20a_IN_ENDMinute"),getValueFromDB("cp2.cp2.20a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("cp2.cp2.20a_OUT_BEGYear"),getValueFromDB("cp2.cp2.20a_OUT_BEGMonth"),getValueFromDB("cp2.cp2.20a_OUT_BEGDay"),
                    getValueFromDB("cp2.cp2.20a_OUT_BEGHour"),getValueFromDB("cp2.cp2.20a_OUT_BEGMinute"),getValueFromDB("cp2.cp2.20a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("cp2.cp2.20a_STORETMHOUR"),getValueFromDB("cp2.cp2.20a_STORETMMinute"),getValueFromDB("cp2.cp2.20a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("cp2.cp2.20a_OUTPROCESS")));
            cabinetValue.setCheckStatusA(convertCheckStatusDict(getValueFromDB("cp2.cp2.20a_CheckStatus")));


            cabinetValue.setBrandB(getValueFromDB("cp2.cp2.20b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("cp2.cp2.20b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("cp2.cp2.20b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("cp2.cp2.20b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("cp2.cp2.20b_In_EndYear"),getValueFromDB("cp2.cp2.20b_IN_ENDMonth"),getValueFromDB("cp2.cp2.20b_IN_ENDDay"),
                    getValueFromDB("cp2.cp2.20b_IN_ENDHour"),getValueFromDB("cp2.cp2.20b_IN_ENDMinute"),getValueFromDB("cp2.cp2.20b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("cp2.cp2.20b_OUT_BEGYear"),getValueFromDB("cp2.cp2.20b_OUT_BEGMonth"),getValueFromDB("cp2.cp2.20b_OUT_BEGDay"),
                    getValueFromDB("cp2.cp2.20b_OUT_BEGHour"),getValueFromDB("cp2.cp2.20b_OUT_BEGMinute"),getValueFromDB("cp2.cp2.20b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("cp2.cp2.20b_STORETMHOUR"),getValueFromDB("cp2.cp2.20b_STORETMMinute"),getValueFromDB("cp2.cp2.20b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("cp2.cp2.20b_OUTPROCESS")));
            cabinetValue.setCheckStatusB(convertCheckStatusDict(getValueFromDB("cp2.cp2.20b_CheckStatus")));

        }else if("yp1_1".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp1.yp1.1a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp1.yp1.1a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp1.yp1.1a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp1.yp1.1a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp1.yp1.1a_In_EndYear"),getValueFromDB("yp1.yp1.1a_IN_ENDMonth"),getValueFromDB("yp1.yp1.1a_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.1a_IN_ENDHour"),getValueFromDB("yp1.yp1.1a_IN_ENDMinute"),getValueFromDB("yp1.yp1.1a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp1.yp1.1a_OUT_BEGYear"),getValueFromDB("yp1.yp1.1a_OUT_BEGMonth"),getValueFromDB("yp1.yp1.1a_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.1a_OUT_BEGHour"),getValueFromDB("yp1.yp1.1a_OUT_BEGMinute"),getValueFromDB("yp1.yp1.1a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp1.yp1.1a_STORETMHOUR"),getValueFromDB("yp1.yp1.1a_STORETMMinute"),getValueFromDB("yp1.yp1.1a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp1.yp1.1a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp1.yp1.1a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp1.yp1.1b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp1.yp1.1b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp1.yp1.1b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp1.yp1.1b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp1.yp1.1b_In_EndYear"),getValueFromDB("yp1.yp1.1b_IN_ENDMonth"),getValueFromDB("yp1.yp1.1b_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.1b_IN_ENDHour"),getValueFromDB("yp1.yp1.1b_IN_ENDMinute"),getValueFromDB("yp1.yp1.1b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp1.yp1.1b_OUT_BEGYear"),getValueFromDB("yp1.yp1.1b_OUT_BEGMonth"),getValueFromDB("yp1.yp1.1b_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.1b_OUT_BEGHour"),getValueFromDB("yp1.yp1.1b_OUT_BEGMinute"),getValueFromDB("yp1.yp1.1b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp1.yp1.1b_STORETMHOUR"),getValueFromDB("yp1.yp1.1b_STORETMMinute"),getValueFromDB("yp1.yp1.1b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp1.yp1.1b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp1.yp1.1b_MaterialWater")));

        }else if("yp1_2".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp1.yp1.2a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp1.yp1.2a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp1.yp1.2a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp1.yp1.2a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp1.yp1.2a_In_EndYear"),getValueFromDB("yp1.yp1.2a_IN_ENDMonth"),getValueFromDB("yp1.yp1.2a_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.2a_IN_ENDHour"),getValueFromDB("yp1.yp1.2a_IN_ENDMinute"),getValueFromDB("yp1.yp1.2a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp1.yp1.2a_OUT_BEGYear"),getValueFromDB("yp1.yp1.2a_OUT_BEGMonth"),getValueFromDB("yp1.yp1.2a_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.2a_OUT_BEGHour"),getValueFromDB("yp1.yp1.2a_OUT_BEGMinute"),getValueFromDB("yp1.yp1.2a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp1.yp1.2a_STORETMHOUR"),getValueFromDB("yp1.yp1.2a_STORETMMinute"),getValueFromDB("yp1.yp1.2a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp1.yp1.2a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp1.yp1.2a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp1.yp1.2b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp1.yp1.2b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp1.yp1.2b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp1.yp1.2b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp1.yp1.2b_In_EndYear"),getValueFromDB("yp1.yp1.2b_IN_ENDMonth"),getValueFromDB("yp1.yp1.2b_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.2b_IN_ENDHour"),getValueFromDB("yp1.yp1.2b_IN_ENDMinute"),getValueFromDB("yp1.yp1.2b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp1.yp1.2b_OUT_BEGYear"),getValueFromDB("yp1.yp1.2b_OUT_BEGMonth"),getValueFromDB("yp1.yp1.2b_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.2b_OUT_BEGHour"),getValueFromDB("yp1.yp1.2b_OUT_BEGMinute"),getValueFromDB("yp1.yp1.2b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp1.yp1.2b_STORETMHOUR"),getValueFromDB("yp1.yp1.2b_STORETMMinute"),getValueFromDB("yp1.yp1.2b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp1.yp1.2b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp1.yp1.2b_MaterialWater")));

        }else if("yp1_3".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp1.yp1.3a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp1.yp1.3a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp1.yp1.3a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp1.yp1.3a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp1.yp1.3a_In_EndYear"),getValueFromDB("yp1.yp1.3a_IN_ENDMonth"),getValueFromDB("yp1.yp1.3a_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.3a_IN_ENDHour"),getValueFromDB("yp1.yp1.3a_IN_ENDMinute"),getValueFromDB("yp1.yp1.3a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp1.yp1.3a_OUT_BEGYear"),getValueFromDB("yp1.yp1.3a_OUT_BEGMonth"),getValueFromDB("yp1.yp1.3a_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.3a_OUT_BEGHour"),getValueFromDB("yp1.yp1.3a_OUT_BEGMinute"),getValueFromDB("yp1.yp1.3a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp1.yp1.3a_STORETMHOUR"),getValueFromDB("yp1.yp1.3a_STORETMMinute"),getValueFromDB("yp1.yp1.3a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp1.yp1.3a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp1.yp1.3a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp1.yp1.3b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp1.yp1.3b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp1.yp1.3b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp1.yp1.3b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp1.yp1.3b_In_EndYear"),getValueFromDB("yp1.yp1.3b_IN_ENDMonth"),getValueFromDB("yp1.yp1.3b_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.3b_IN_ENDHour"),getValueFromDB("yp1.yp1.3b_IN_ENDMinute"),getValueFromDB("yp1.yp1.3b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp1.yp1.3b_OUT_BEGYear"),getValueFromDB("yp1.yp1.3b_OUT_BEGMonth"),getValueFromDB("yp1.yp1.3b_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.3b_OUT_BEGHour"),getValueFromDB("yp1.yp1.3b_OUT_BEGMinute"),getValueFromDB("yp1.yp1.3b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp1.yp1.3b_STORETMHOUR"),getValueFromDB("yp1.yp1.3b_STORETMMinute"),getValueFromDB("yp1.yp1.3b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp1.yp1.3b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp1.yp1.3b_MaterialWater")));

        }else if("yp1_4".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp1.yp1.4a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp1.yp1.4a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp1.yp1.4a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp1.yp1.4a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp1.yp1.4a_In_EndYear"),getValueFromDB("yp1.yp1.4a_IN_ENDMonth"),getValueFromDB("yp1.yp1.4a_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.4a_IN_ENDHour"),getValueFromDB("yp1.yp1.4a_IN_ENDMinute"),getValueFromDB("yp1.yp1.4a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp1.yp1.4a_OUT_BEGYear"),getValueFromDB("yp1.yp1.4a_OUT_BEGMonth"),getValueFromDB("yp1.yp1.4a_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.4a_OUT_BEGHour"),getValueFromDB("yp1.yp1.4a_OUT_BEGMinute"),getValueFromDB("yp1.yp1.4a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp1.yp1.4a_STORETMHOUR"),getValueFromDB("yp1.yp1.4a_STORETMMinute"),getValueFromDB("yp1.yp1.4a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp1.yp1.4a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp1.yp1.4a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp1.yp1.4b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp1.yp1.4b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp1.yp1.4b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp1.yp1.4b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp1.yp1.4b_In_EndYear"),getValueFromDB("yp1.yp1.4b_IN_ENDMonth"),getValueFromDB("yp1.yp1.4b_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.4b_IN_ENDHour"),getValueFromDB("yp1.yp1.4b_IN_ENDMinute"),getValueFromDB("yp1.yp1.4b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp1.yp1.4b_OUT_BEGYear"),getValueFromDB("yp1.yp1.4b_OUT_BEGMonth"),getValueFromDB("yp1.yp1.4b_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.4b_OUT_BEGHour"),getValueFromDB("yp1.yp1.4b_OUT_BEGMinute"),getValueFromDB("yp1.yp1.4b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp1.yp1.4b_STORETMHOUR"),getValueFromDB("yp1.yp1.4b_STORETMMinute"),getValueFromDB("yp1.yp1.4b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp1.yp1.4b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp1.yp1.4b_MaterialWater")));

        }else if("yp1_5".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp1.yp1.5a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp1.yp1.5a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp1.yp1.5a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp1.yp1.5a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp1.yp1.5a_In_EndYear"),getValueFromDB("yp1.yp1.5a_IN_ENDMonth"),getValueFromDB("yp1.yp1.5a_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.5a_IN_ENDHour"),getValueFromDB("yp1.yp1.5a_IN_ENDMinute"),getValueFromDB("yp1.yp1.5a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp1.yp1.5a_OUT_BEGYear"),getValueFromDB("yp1.yp1.5a_OUT_BEGMonth"),getValueFromDB("yp1.yp1.5a_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.5a_OUT_BEGHour"),getValueFromDB("yp1.yp1.5a_OUT_BEGMinute"),getValueFromDB("yp1.yp1.5a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp1.yp1.5a_STORETMHOUR"),getValueFromDB("yp1.yp1.5a_STORETMMinute"),getValueFromDB("yp1.yp1.5a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp1.yp1.5a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp1.yp1.5a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp1.yp1.5b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp1.yp1.5b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp1.yp1.5b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp1.yp1.5b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp1.yp1.5b_In_EndYear"),getValueFromDB("yp1.yp1.5b_IN_ENDMonth"),getValueFromDB("yp1.yp1.5b_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.5b_IN_ENDHour"),getValueFromDB("yp1.yp1.5b_IN_ENDMinute"),getValueFromDB("yp1.yp1.5b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp1.yp1.5b_OUT_BEGYear"),getValueFromDB("yp1.yp1.5b_OUT_BEGMonth"),getValueFromDB("yp1.yp1.5b_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.5b_OUT_BEGHour"),getValueFromDB("yp1.yp1.5b_OUT_BEGMinute"),getValueFromDB("yp1.yp1.5b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp1.yp1.5b_STORETMHOUR"),getValueFromDB("yp1.yp1.5b_STORETMMinute"),getValueFromDB("yp1.yp1.5b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp1.yp1.5b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp1.yp1.5b_MaterialWater")));

        }else if("yp1_6".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp1.yp1.6a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp1.yp1.6a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp1.yp1.6a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp1.yp1.6a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp1.yp1.6a_In_EndYear"),getValueFromDB("yp1.yp1.6a_IN_ENDMonth"),getValueFromDB("yp1.yp1.6a_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.6a_IN_ENDHour"),getValueFromDB("yp1.yp1.6a_IN_ENDMinute"),getValueFromDB("yp1.yp1.6a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp1.yp1.6a_OUT_BEGYear"),getValueFromDB("yp1.yp1.6a_OUT_BEGMonth"),getValueFromDB("yp1.yp1.6a_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.6a_OUT_BEGHour"),getValueFromDB("yp1.yp1.6a_OUT_BEGMinute"),getValueFromDB("yp1.yp1.6a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp1.yp1.6a_STORETMHOUR"),getValueFromDB("yp1.yp1.6a_STORETMMinute"),getValueFromDB("yp1.yp1.6a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp1.yp1.6a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp1.yp1.6a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp1.yp1.6b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp1.yp1.6b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp1.yp1.6b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp1.yp1.6b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp1.yp1.6b_In_EndYear"),getValueFromDB("yp1.yp1.6b_IN_ENDMonth"),getValueFromDB("yp1.yp1.6b_IN_ENDDay"),
                    getValueFromDB("yp1.yp1.6b_IN_ENDHour"),getValueFromDB("yp1.yp1.6b_IN_ENDMinute"),getValueFromDB("yp1.yp1.6b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp1.yp1.6b_OUT_BEGYear"),getValueFromDB("yp1.yp1.6b_OUT_BEGMonth"),getValueFromDB("yp1.yp1.6b_OUT_BEGDay"),
                    getValueFromDB("yp1.yp1.6b_OUT_BEGHour"),getValueFromDB("yp1.yp1.6b_OUT_BEGMinute"),getValueFromDB("yp1.yp1.6b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp1.yp1.6b_STORETMHOUR"),getValueFromDB("yp1.yp1.6b_STORETMMinute"),getValueFromDB("yp1.yp1.6b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp1.yp1.6b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp1.yp1.6b_MaterialWater")));

        }else if("yp2_1".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp2.yp2.1a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp2.yp2.1a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp2.yp2.1a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp2.yp2.1a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp2.yp2.1a_In_EndYear"),getValueFromDB("yp2.yp2.1a_IN_ENDMonth"),getValueFromDB("yp2.yp2.1a_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.1a_IN_ENDHour"),getValueFromDB("yp2.yp2.1a_IN_ENDMinute"),getValueFromDB("yp2.yp2.1a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp2.yp2.1a_OUT_BEGYear"),getValueFromDB("yp2.yp2.1a_OUT_BEGMonth"),getValueFromDB("yp2.yp2.1a_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.1a_OUT_BEGHour"),getValueFromDB("yp2.yp2.1a_OUT_BEGMinute"),getValueFromDB("yp2.yp2.1a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp2.yp2.1a_STORETMHOUR"),getValueFromDB("yp2.yp2.1a_STORETMMinute"),getValueFromDB("yp2.yp2.1a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp2.yp2.1a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp2.yp2.1a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp2.yp2.1b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp2.yp2.1b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp2.yp2.1b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp2.yp2.1b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp2.yp2.1b_In_EndYear"),getValueFromDB("yp2.yp2.1b_IN_ENDMonth"),getValueFromDB("yp2.yp2.1b_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.1b_IN_ENDHour"),getValueFromDB("yp2.yp2.1b_IN_ENDMinute"),getValueFromDB("yp2.yp2.1b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp2.yp2.1b_OUT_BEGYear"),getValueFromDB("yp2.yp2.1b_OUT_BEGMonth"),getValueFromDB("yp2.yp2.1b_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.1b_OUT_BEGHour"),getValueFromDB("yp2.yp2.1b_OUT_BEGMinute"),getValueFromDB("yp2.yp2.1b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp2.yp2.1b_STORETMHOUR"),getValueFromDB("yp2.yp2.1b_STORETMMinute"),getValueFromDB("yp2.yp2.1b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp2.yp2.1b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp2.yp2.1b_MaterialWater")));

        }else if("yp2_2".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp2.yp2.2a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp2.yp2.2a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp2.yp2.2a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp2.yp2.2a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp2.yp2.2a_In_EndYear"),getValueFromDB("yp2.yp2.2a_IN_ENDMonth"),getValueFromDB("yp2.yp2.2a_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.2a_IN_ENDHour"),getValueFromDB("yp2.yp2.2a_IN_ENDMinute"),getValueFromDB("yp2.yp2.2a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp2.yp2.2a_OUT_BEGYear"),getValueFromDB("yp2.yp2.2a_OUT_BEGMonth"),getValueFromDB("yp2.yp2.2a_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.2a_OUT_BEGHour"),getValueFromDB("yp2.yp2.2a_OUT_BEGMinute"),getValueFromDB("yp2.yp2.2a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp2.yp2.2a_STORETMHOUR"),getValueFromDB("yp2.yp2.2a_STORETMMinute"),getValueFromDB("yp2.yp2.2a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp2.yp2.2a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp2.yp2.2a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp2.yp2.2b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp2.yp2.2b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp2.yp2.2b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp2.yp2.2b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp2.yp2.2b_In_EndYear"),getValueFromDB("yp2.yp2.2b_IN_ENDMonth"),getValueFromDB("yp2.yp2.2b_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.2b_IN_ENDHour"),getValueFromDB("yp2.yp2.2b_IN_ENDMinute"),getValueFromDB("yp2.yp2.2b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp2.yp2.2b_OUT_BEGYear"),getValueFromDB("yp2.yp2.2b_OUT_BEGMonth"),getValueFromDB("yp2.yp2.2b_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.2b_OUT_BEGHour"),getValueFromDB("yp2.yp2.2b_OUT_BEGMinute"),getValueFromDB("yp2.yp2.2b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp2.yp2.2b_STORETMHOUR"),getValueFromDB("yp2.yp2.2b_STORETMMinute"),getValueFromDB("yp2.yp2.2b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp2.yp2.2b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp2.yp2.2b_MaterialWater")));

        }else if("yp2_3".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp2.yp2.3a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp2.yp2.3a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp2.yp2.3a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp2.yp2.3a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp2.yp2.3a_In_EndYear"),getValueFromDB("yp2.yp2.3a_IN_ENDMonth"),getValueFromDB("yp2.yp2.3a_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.3a_IN_ENDHour"),getValueFromDB("yp2.yp2.3a_IN_ENDMinute"),getValueFromDB("yp2.yp2.3a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp2.yp2.3a_OUT_BEGYear"),getValueFromDB("yp2.yp2.3a_OUT_BEGMonth"),getValueFromDB("yp2.yp2.3a_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.3a_OUT_BEGHour"),getValueFromDB("yp2.yp2.3a_OUT_BEGMinute"),getValueFromDB("yp2.yp2.3a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp2.yp2.3a_STORETMHOUR"),getValueFromDB("yp2.yp2.3a_STORETMMinute"),getValueFromDB("yp2.yp2.3a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp2.yp2.3a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp2.yp2.3a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp2.yp2.3b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp2.yp2.3b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp2.yp2.3b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp2.yp2.3b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp2.yp2.3b_In_EndYear"),getValueFromDB("yp2.yp2.3b_IN_ENDMonth"),getValueFromDB("yp2.yp2.3b_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.3b_IN_ENDHour"),getValueFromDB("yp2.yp2.3b_IN_ENDMinute"),getValueFromDB("yp2.yp2.3b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp2.yp2.3b_OUT_BEGYear"),getValueFromDB("yp2.yp2.3b_OUT_BEGMonth"),getValueFromDB("yp2.yp2.3b_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.3b_OUT_BEGHour"),getValueFromDB("yp2.yp2.3b_OUT_BEGMinute"),getValueFromDB("yp2.yp2.3b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp2.yp2.3b_STORETMHOUR"),getValueFromDB("yp2.yp2.3b_STORETMMinute"),getValueFromDB("yp2.yp2.3b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp2.yp2.3b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp2.yp2.3b_MaterialWater")));

        }else if("yp2_4".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp2.yp2.4a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp2.yp2.4a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp2.yp2.4a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp2.yp2.4a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp2.yp2.4a_In_EndYear"),getValueFromDB("yp2.yp2.4a_IN_ENDMonth"),getValueFromDB("yp2.yp2.4a_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.4a_IN_ENDHour"),getValueFromDB("yp2.yp2.4a_IN_ENDMinute"),getValueFromDB("yp2.yp2.4a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp2.yp2.4a_OUT_BEGYear"),getValueFromDB("yp2.yp2.4a_OUT_BEGMonth"),getValueFromDB("yp2.yp2.4a_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.4a_OUT_BEGHour"),getValueFromDB("yp2.yp2.4a_OUT_BEGMinute"),getValueFromDB("yp2.yp2.4a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp2.yp2.4a_STORETMHOUR"),getValueFromDB("yp2.yp2.4a_STORETMMinute"),getValueFromDB("yp2.yp2.4a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp2.yp2.4a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp2.yp2.4a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp2.yp2.4b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp2.yp2.4b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp2.yp2.4b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp2.yp2.4b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp2.yp2.4b_In_EndYear"),getValueFromDB("yp2.yp2.4b_IN_ENDMonth"),getValueFromDB("yp2.yp2.4b_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.4b_IN_ENDHour"),getValueFromDB("yp2.yp2.4b_IN_ENDMinute"),getValueFromDB("yp2.yp2.4b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp2.yp2.4b_OUT_BEGYear"),getValueFromDB("yp2.yp2.4b_OUT_BEGMonth"),getValueFromDB("yp2.yp2.4b_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.4b_OUT_BEGHour"),getValueFromDB("yp2.yp2.4b_OUT_BEGMinute"),getValueFromDB("yp2.yp2.4b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp2.yp2.4b_STORETMHOUR"),getValueFromDB("yp2.yp2.4b_STORETMMinute"),getValueFromDB("yp2.yp2.4b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp2.yp2.4b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp2.yp2.4b_MaterialWater")));

        }else if("yp2_5".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp2.yp2.5a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp2.yp2.5a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp2.yp2.5a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp2.yp2.5a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp2.yp2.5a_In_EndYear"),getValueFromDB("yp2.yp2.5a_IN_ENDMonth"),getValueFromDB("yp2.yp2.5a_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.5a_IN_ENDHour"),getValueFromDB("yp2.yp2.5a_IN_ENDMinute"),getValueFromDB("yp2.yp2.5a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp2.yp2.5a_OUT_BEGYear"),getValueFromDB("yp2.yp2.5a_OUT_BEGMonth"),getValueFromDB("yp2.yp2.5a_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.5a_OUT_BEGHour"),getValueFromDB("yp2.yp2.5a_OUT_BEGMinute"),getValueFromDB("yp2.yp2.5a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp2.yp2.5a_STORETMHOUR"),getValueFromDB("yp2.yp2.5a_STORETMMinute"),getValueFromDB("yp2.yp2.5a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp2.yp2.5a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp2.yp2.5a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp2.yp2.5b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp2.yp2.5b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp2.yp2.5b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp2.yp2.5b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp2.yp2.5b_In_EndYear"),getValueFromDB("yp2.yp2.5b_IN_ENDMonth"),getValueFromDB("yp2.yp2.5b_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.5b_IN_ENDHour"),getValueFromDB("yp2.yp2.5b_IN_ENDMinute"),getValueFromDB("yp2.yp2.5b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp2.yp2.5b_OUT_BEGYear"),getValueFromDB("yp2.yp2.5b_OUT_BEGMonth"),getValueFromDB("yp2.yp2.5b_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.5b_OUT_BEGHour"),getValueFromDB("yp2.yp2.5b_OUT_BEGMinute"),getValueFromDB("yp2.yp2.5b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp2.yp2.5b_STORETMHOUR"),getValueFromDB("yp2.yp2.5b_STORETMMinute"),getValueFromDB("yp2.yp2.5b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp2.yp2.5b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp2.yp2.5b_MaterialWater")));

        }else if("yp2_6".equals(cabinet)){
            cabinetValue.setBrandA(getValueFromDB("yp2.yp2.6a_BRANDID"));
            cabinetValue.setBatchA(getValueFromDB("yp2.yp2.6a_BATCH"));
            cabinetValue.setInoutStatusA(convertStatusDict(getValueFromDB("yp2.yp2.6a_INOUTSTATUS")));
            cabinetValue.setWeightA(convertWeight(getValueFromDB("yp2.yp2.6a_TotalWeigh")));
            cabinetValue.setInTimeA(convertDate(getValueFromDB("yp2.yp2.6a_In_EndYear"),getValueFromDB("yp2.yp2.6a_IN_ENDMonth"),getValueFromDB("yp2.yp2.6a_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.6a_IN_ENDHour"),getValueFromDB("yp2.yp2.6a_IN_ENDMinute"),getValueFromDB("yp2.yp2.6a_IN_ENDSecond")));
            cabinetValue.setOutTimeA(convertDate(getValueFromDB("yp2.yp2.6a_OUT_BEGYear"),getValueFromDB("yp2.yp2.6a_OUT_BEGMonth"),getValueFromDB("yp2.yp2.6a_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.6a_OUT_BEGHour"),getValueFromDB("yp2.yp2.6a_OUT_BEGMinute"),getValueFromDB("yp2.yp2.6a_OUT_BEGSecond")));

            cabinetValue.setStoreTimeA(convertTime(getValueFromDB("yp2.yp2.6a_STORETMHOUR"),getValueFromDB("yp2.yp2.6a_STORETMMinute"),getValueFromDB("yp2.yp2.6a_STORETMSec")));
            cabinetValue.setRemainWeightA(convertPercentWeight(getValueFromDB("yp2.yp2.6a_OUTPROCESS")));
            cabinetValue.setMaterialWaterA(convertPercentWeight(getValueFromDB("yp2.yp2.6a_MaterialWater")));


            cabinetValue.setBrandB(getValueFromDB("yp2.yp2.6b_BRANDID"));
            cabinetValue.setBatchB(getValueFromDB("yp2.yp2.6b_BATCH"));
            cabinetValue.setInoutStatusB(convertStatusDict(getValueFromDB("yp2.yp2.6b_INOUTSTATUS")));
            cabinetValue.setWeightB(convertWeight(getValueFromDB("yp2.yp2.6b_TotalWeigh")));
            cabinetValue.setInTimeB(convertDate(getValueFromDB("yp2.yp2.6b_In_EndYear"),getValueFromDB("yp2.yp2.6b_IN_ENDMonth"),getValueFromDB("yp2.yp2.6b_IN_ENDDay"),
                    getValueFromDB("yp2.yp2.6b_IN_ENDHour"),getValueFromDB("yp2.yp2.6b_IN_ENDMinute"),getValueFromDB("yp2.yp2.6b_IN_ENDSecond")));
            cabinetValue.setOutTimeB(convertDate(getValueFromDB("yp2.yp2.6b_OUT_BEGYear"),getValueFromDB("yp2.yp2.6b_OUT_BEGMonth"),getValueFromDB("yp2.yp2.6b_OUT_BEGDay"),
                    getValueFromDB("yp2.yp2.6b_OUT_BEGHour"),getValueFromDB("yp2.yp2.6b_OUT_BEGMinute"),getValueFromDB("yp2.yp2.6b_OUT_BEGSecond")));

            cabinetValue.setStoreTimeB(convertTime(getValueFromDB("yp2.yp2.6b_STORETMHOUR"),getValueFromDB("yp2.yp2.6b_STORETMMinute"),getValueFromDB("yp2.yp2.6b_STORETMSec")));
            cabinetValue.setRemainWeightB(convertPercentWeight(getValueFromDB("yp2.yp2.6b_OUTPROCESS")));
            cabinetValue.setMaterialWaterB(convertPercentWeight(getValueFromDB("yp2.yp2.6b_MaterialWater")));

        }else if("testLocal".equals(cabinet)){

//            cabinetValue.setBrandA(getValueFromDB("通道 1.设备 1.标记 2"));
//            cabinetValue.setBatchA(getValueFromDB("通道 1.设备 1.标记 1"));
            cabinetValue.setWeightA(getValueFromDB("yp2.cs.VB_10"));
            cabinetValue.setInoutStatusA("1");
        }else{
//            cabinetValue.setBrandA("无牌别");
//            cabinetValue.setBatchA("无批次");
//            cabinetValue.setWeightA("无重量");
//            cabinetValue.setInoutStatusA("无状态");
        }
        //2024-11-05  单独设置检验状态，如果贮料状态有料，就显示合格。即1 进料、2贮料、3出料、4边进边出都是合格。5或者其他就是空
        if("1".equals(cabinetValue.getInoutStatusA()) || "2".equals(cabinetValue.getInoutStatusA()) || "3".equals(cabinetValue.getInoutStatusA()) || "4".equals(cabinetValue.getInoutStatusA())){
            cabinetValue.setCheckStatusA("合格");
        }
        if("1".equals(cabinetValue.getInoutStatusB()) || "2".equals(cabinetValue.getInoutStatusB()) || "3".equals(cabinetValue.getInoutStatusB()) || "4".equals(cabinetValue.getInoutStatusB())){
            cabinetValue.setCheckStatusB("合格");
        }
        return cabinetValue;
    }

    /**
     * 根据标记值，从数据库中获取最新的记录值
     * @param identifier
     * @return
     */
    private String getValueFromDB(String identifier){
        if (cacheHelper.exist(identifier)) {
            String value = cacheHelper.stringGet(identifier);
//            log.warn("==========================命中缓存：{},value:{}",identifier,value);
            return value;
        }else{
//            log.warn("++++++++++++++++++++++++++没有命中缓存：{}查询数据库",identifier);
            OpcTagValue opcTagValue = opcTagValueService.selectOne("tag_name",identifier);
            return opcTagValue == null ? "" : opcTagValue.getValue();
        }
    }

    /**
     *
     *
     * 创建OPC UA客户端
     * @return
     * @throws Exception
     */
    private OpcUaClient createClient(String username,String password) throws Exception {
        //opc ua服务端地址
//        String endPointUrl = "opc.tcp://" + "127.0.0.1" + ":" + "49320";

        Path securityTempDir = Paths.get(System.getProperty("java.io.tmpdir"), "security");
        Files.createDirectories(securityTempDir);
        if (!Files.exists(securityTempDir)) {
            throw new Exception("unable to create security dir: " + securityTempDir);
        }
        IdentityProvider identityProvider;
        //判断用户名密码，没有的话，则为匿名登录
        if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
            identityProvider = new UsernameProvider(username, password);
        } else {
            identityProvider = new AnonymousProvider();
        }
        OpcUaClient opcUaClient =  OpcUaClient.create(endPointUrl,
                endpoints ->
                        endpoints.stream()
                                .filter(e -> e.getSecurityPolicyUri().equals(SecurityPolicy.None.getUri()))
                                .findFirst(),
                configBuilder ->
                        configBuilder
                                .setApplicationName(LocalizedText.english("eclipse milo opc-ua client"))
                                .setApplicationUri("urn:eclipse:milo:examples:client")
                                //访问方式
                                .setIdentityProvider(identityProvider)
                                .setRequestTimeout(UInteger.valueOf(4000))
                                .build()
        );
//        Thread.sleep(2000); // 线程休眠一下再返回对象，给创建过程一个时间。

//        if (!opcUaClient.getSession().isDone()) {
//            try {
//                // synchronous connect
//                opcUaClient.connect().get();
//                log.info("OPC UA Client连接connect成功");
//            } catch (Exception e) {
//                log.error("OPC UA Client连接connect失败, {}", e.getMessage());
//                opcUaClient.disconnect();
//                opcUaClient = null;
//                return null;
//            }
//        }
        return opcUaClient;
    }
    /**
     * 遍历树形节点
     *
     * @param client OPC UA客户端
     * @param uaNode 节点
     * @throws Exception
     */
    private static void browseNode(OpcUaClient client, UaNode uaNode) throws Exception {
        List<? extends UaNode> nodes;
        if (uaNode == null) {
            nodes = client.getAddressSpace().browseNodes(Identifiers.ObjectsFolder);
        } else {
            nodes = client.getAddressSpace().browseNodes(uaNode);
        }
        for (UaNode nd : nodes) {
            //排除系统行性节点，这些系统性节点名称一般都是以"_"开头
            if (Objects.requireNonNull(nd.getBrowseName().getName()).contains("_")) {
                continue;
            }
            log.info("Node= " + nd.getBrowseName().getName());
            browseNode(client, nd);
        }
    }
    /**
     * 读取节点数据
     *
     * namespaceIndex可以通过UaExpert客户端去查询，一般来说这个值是2。
     * identifier也可以通过UaExpert客户端去查询，这个值=通道名称.设备名称.标记名称
     *
     * @param client
     * @param namespaceIndex
     * @param identifier
     * @throws Exception
     */
    public static void readNodeValue(OpcUaClient client, int namespaceIndex, String identifier) throws Exception {
        //节点
        NodeId nodeId = new NodeId(namespaceIndex, identifier);

        //读取节点数据
        DataValue value = client.readValue(0.0, TimestampsToReturn.Neither, nodeId).get();

        // 状态
        System.out.println(identifier + " Status: " + value.getStatusCode());

        //标识符
        String id = String.valueOf(nodeId.getIdentifier());
        System.out.println(id + ": " + value.getValue().getValue());
    }
    /**
     * 写入节点数据
     *
     * @param client
     * @param namespaceIndex
     * @param identifier
     * @param value
     * @throws Exception
     */
    public static void writeNodeValue(OpcUaClient client, int namespaceIndex, String identifier, Float value) throws Exception {
        //节点
        NodeId nodeId = new NodeId(namespaceIndex, identifier);
        //创建数据对象,此处的数据对象一定要定义类型，不然会出现类型错误，导致无法写入
        DataValue newValue = new DataValue(new Variant(value), null, null);
        //写入节点数据
        StatusCode statusCode = client.writeValue(nodeId, newValue).join();
        System.out.println("结果：" + statusCode.isGood());
    }
    /**
     * 订阅(单个)
     *
     * @param client
     * @param namespaceIndex
     * @param identifier
     * @throws Exception
     */
    private static final AtomicInteger atomic = new AtomicInteger();

    public void subscribe(OpcUaClient client, int namespaceIndex, String identifier) throws Exception {
        //创建发布间隔1000ms的订阅对象
        client
                .getSubscriptionManager()
                .createSubscription(1000.0)
                .thenAccept(t -> {
                    //节点
                    NodeId nodeId = new NodeId(namespaceIndex, identifier);
                    ReadValueId readValueId = new ReadValueId(nodeId, AttributeId.Value.uid(), null, null);
                    //创建监控的参数
                    MonitoringParameters parameters = new MonitoringParameters(UInteger.valueOf(atomic.getAndIncrement()), 1000.0, null, UInteger.valueOf(10), true);
                    //创建监控项请求
                    //该请求最后用于创建订阅。
                    MonitoredItemCreateRequest request = new MonitoredItemCreateRequest(readValueId, MonitoringMode.Reporting, parameters);
                    List<MonitoredItemCreateRequest> requests = new ArrayList<>();
                    requests.add(request);
                    //创建监控项，并且注册变量值改变时候的回调函数。
                    t.createMonitoredItems(
                            TimestampsToReturn.Both,
                            requests,
                            (item, id) -> item.setValueConsumer((it, val) -> {
                                System.out.println("nodeid :" + it.getReadValueId().getNodeId());
                                System.out.println("value :" + val.getValue().getValue());
                            })
                    );
                }).get();

        //持续订阅
        Thread.sleep(Long.MAX_VALUE);
    }

    /**
     * 订阅单个节点的重载方法
     * @param client
     * @param nodeId
     * @throws Exception
     */
    public void subscribe(OpcUaClient client, NodeId nodeId) throws Exception {
        //创建发布间隔1000ms的订阅对象
        client
                .getSubscriptionManager()
                .createSubscription(1000.0)
                .thenAccept(t -> {
                    ReadValueId readValueId = new ReadValueId(nodeId, AttributeId.Value.uid(), null, null);
                    //创建监控的参数
                    MonitoringParameters parameters = new MonitoringParameters(UInteger.valueOf(atomic.getAndIncrement()), 1000.0, null, UInteger.valueOf(10), true);
                    //创建监控项请求
                    //该请求最后用于创建订阅。
                    MonitoredItemCreateRequest request = new MonitoredItemCreateRequest(readValueId, MonitoringMode.Reporting, parameters);
                    List<MonitoredItemCreateRequest> requests = new ArrayList<>();
                    requests.add(request);
                    //创建监控项，并且注册变量值改变时候的回调函数。
                    t.createMonitoredItems(
                            TimestampsToReturn.Both,
                            requests,
                            (item, id) -> item.setValueConsumer((it, val) -> {
                                System.out.println("nodeid :" + it.getReadValueId().getNodeId());
                                System.out.println("value :" + val.getValue().getValue());
                            })
                    );
                }).get();

        //持续订阅
        Thread.sleep(Long.MAX_VALUE);
    }
    /**
     * 批量订阅
     *
     * @throws Exception
     */
//    private static void managedSubscriptionEvent(OpcUaClient client) throws Exception {
//        final CountDownLatch eventLatch = new CountDownLatch(1);
//
//        //处理订阅业务
//        handlerNode(client);
//
//        //持续监听
//        eventLatch.await();
//    }

    /**
     * 设定取值订阅范围
     * @return
     */
    private List<String> getIdentifiers(){
        List<String> identifiers = new ArrayList<>();
        //1--18号柜子  start
        identifiers.add("cs.cs.1a_BRANDID");
        identifiers.add("cs.cs.1a_BATCH");
        identifiers.add("cs.cs.1a_INOUTSTATUS");
        identifiers.add("cs.cs.1a_In_EndYear");
        identifiers.add("cs.cs.1a_IN_ENDMonth");
        identifiers.add("cs.cs.1a_IN_ENDDay");
        identifiers.add("cs.cs.1a_IN_ENDHour");
        identifiers.add("cs.cs.1a_IN_ENDMinute");
        identifiers.add("cs.cs.1a_IN_ENDSecond");
        identifiers.add("cs.cs.1a_OUT_BEGYear");
        identifiers.add("cs.cs.1a_OUT_BEGMonth");
        identifiers.add("cs.cs.1a_OUT_BEGDay");
        identifiers.add("cs.cs.1a_OUT_BEGHour");
        identifiers.add("cs.cs.1a_OUT_BEGMinute");
        identifiers.add("cs.cs.1a_OUT_BEGSecond");
        identifiers.add("cs.cs.1a_STORETMHOUR");
        identifiers.add("cs.cs.1a_STORETMMinute");
        identifiers.add("cs.cs.1a_STORETMSec");
        identifiers.add("cs.cs.1a_OUTPROCESS");
        identifiers.add("cs.cs.1a_PRESWEIGHT");
        identifiers.add("cs.cs.1b_BRANDID");
        identifiers.add("cs.cs.1b_BATCH");
        identifiers.add("cs.cs.1b_INOUTSTATUS");
        identifiers.add("cs.cs.1b_In_EndYear");
        identifiers.add("cs.cs.1b_IN_ENDMonth");
        identifiers.add("cs.cs.1b_IN_ENDDay");
        identifiers.add("cs.cs.1b_IN_ENDHour");
        identifiers.add("cs.cs.1b_IN_ENDMinute");
        identifiers.add("cs.cs.1b_IN_ENDSecond");
        identifiers.add("cs.cs.1b_OUT_BEGYear");
        identifiers.add("cs.cs.1b_OUT_BEGMonth");
        identifiers.add("cs.cs.1b_OUT_BEGDay");
        identifiers.add("cs.cs.1b_OUT_BEGHour");
        identifiers.add("cs.cs.1b_OUT_BEGMinute");
        identifiers.add("cs.cs.1b_OUT_BEGSecond");
        identifiers.add("cs.cs.1b_STORETMHOUR");
        identifiers.add("cs.cs.1b_STORETMMinute");
        identifiers.add("cs.cs.1b_STORETMSec");
        identifiers.add("cs.cs.1b_OUTPROCESS");
        identifiers.add("cs.cs.1b_PRESWEIGHT");
        identifiers.add("cs.cs.2a_BRANDID");
        identifiers.add("cs.cs.2a_BATCH");
        identifiers.add("cs.cs.2a_INOUTSTATUS");
        identifiers.add("cs.cs.2a_In_EndYear");
        identifiers.add("cs.cs.2a_IN_ENDMonth");
        identifiers.add("cs.cs.2a_IN_ENDDay");
        identifiers.add("cs.cs.2a_IN_ENDHour");
        identifiers.add("cs.cs.2a_IN_ENDMinute");
        identifiers.add("cs.cs.2a_IN_ENDSecond");
        identifiers.add("cs.cs.2a_OUT_BEGYear");
        identifiers.add("cs.cs.2a_OUT_BEGMonth");
        identifiers.add("cs.cs.2a_OUT_BEGDay");
        identifiers.add("cs.cs.2a_OUT_BEGHour");
        identifiers.add("cs.cs.2a_OUT_BEGMinute");
        identifiers.add("cs.cs.2a_OUT_BEGSecond");
        identifiers.add("cs.cs.2a_STORETMHOUR");
        identifiers.add("cs.cs.2a_STORETMMinute");
        identifiers.add("cs.cs.2a_STORETMSec");
        identifiers.add("cs.cs.2a_OUTPROCESS");
        identifiers.add("cs.cs.2a_PRESWEIGHT");
        identifiers.add("cs.cs.2b_BRANDID");
        identifiers.add("cs.cs.2b_BATCH");
        identifiers.add("cs.cs.2b_INOUTSTATUS");
        identifiers.add("cs.cs.2b_In_EndYear");
        identifiers.add("cs.cs.2b_IN_ENDMonth");
        identifiers.add("cs.cs.2b_IN_ENDDay");
        identifiers.add("cs.cs.2b_IN_ENDHour");
        identifiers.add("cs.cs.2b_IN_ENDMinute");
        identifiers.add("cs.cs.2b_IN_ENDSecond");
        identifiers.add("cs.cs.2b_OUT_BEGYear");
        identifiers.add("cs.cs.2b_OUT_BEGMonth");
        identifiers.add("cs.cs.2b_OUT_BEGDay");
        identifiers.add("cs.cs.2b_OUT_BEGHour");
        identifiers.add("cs.cs.2b_OUT_BEGMinute");
        identifiers.add("cs.cs.2b_OUT_BEGSecond");
        identifiers.add("cs.cs.2b_STORETMHOUR");
        identifiers.add("cs.cs.2b_STORETMMinute");
        identifiers.add("cs.cs.2b_STORETMSec");
        identifiers.add("cs.cs.2b_OUTPROCESS");
        identifiers.add("cs.cs.2b_PRESWEIGHT");
        identifiers.add("cs.cs.3a_BRANDID");
        identifiers.add("cs.cs.3a_BATCH");
        identifiers.add("cs.cs.3a_INOUTSTATUS");
        identifiers.add("cs.cs.3a_In_EndYear");
        identifiers.add("cs.cs.3a_IN_ENDMonth");
        identifiers.add("cs.cs.3a_IN_ENDDay");
        identifiers.add("cs.cs.3a_IN_ENDHour");
        identifiers.add("cs.cs.3a_IN_ENDMinute");
        identifiers.add("cs.cs.3a_IN_ENDSecond");
        identifiers.add("cs.cs.3a_OUT_BEGYear");
        identifiers.add("cs.cs.3a_OUT_BEGMonth");
        identifiers.add("cs.cs.3a_OUT_BEGDay");
        identifiers.add("cs.cs.3a_OUT_BEGHour");
        identifiers.add("cs.cs.3a_OUT_BEGMinute");
        identifiers.add("cs.cs.3a_OUT_BEGSecond");
        identifiers.add("cs.cs.3a_STORETMHOUR");
        identifiers.add("cs.cs.3a_STORETMMinute");
        identifiers.add("cs.cs.3a_STORETMSec");
        identifiers.add("cs.cs.3a_OUTPROCESS");
        identifiers.add("cs.cs.3a_PRESWEIGHT");
        identifiers.add("cs.cs.3b_BRANDID");
        identifiers.add("cs.cs.3b_BATCH");
        identifiers.add("cs.cs.3b_INOUTSTATUS");
        identifiers.add("cs.cs.3b_In_EndYear");
        identifiers.add("cs.cs.3b_IN_ENDMonth");
        identifiers.add("cs.cs.3b_IN_ENDDay");
        identifiers.add("cs.cs.3b_IN_ENDHour");
        identifiers.add("cs.cs.3b_IN_ENDMinute");
        identifiers.add("cs.cs.3b_IN_ENDSecond");
        identifiers.add("cs.cs.3b_OUT_BEGYear");
        identifiers.add("cs.cs.3b_OUT_BEGMonth");
        identifiers.add("cs.cs.3b_OUT_BEGDay");
        identifiers.add("cs.cs.3b_OUT_BEGHour");
        identifiers.add("cs.cs.3b_OUT_BEGMinute");
        identifiers.add("cs.cs.3b_OUT_BEGSecond");
        identifiers.add("cs.cs.3b_STORETMHOUR");
        identifiers.add("cs.cs.3b_STORETMMinute");
        identifiers.add("cs.cs.3b_STORETMSec");
        identifiers.add("cs.cs.3b_OUTPROCESS");
        identifiers.add("cs.cs.3b_PRESWEIGHT");
        identifiers.add("cs.cs.4a_BRANDID");
        identifiers.add("cs.cs.4a_BATCH");
        identifiers.add("cs.cs.4a_INOUTSTATUS");
        identifiers.add("cs.cs.4a_In_EndYear");
        identifiers.add("cs.cs.4a_IN_ENDMonth");
        identifiers.add("cs.cs.4a_IN_ENDDay");
        identifiers.add("cs.cs.4a_IN_ENDHour");
        identifiers.add("cs.cs.4a_IN_ENDMinute");
        identifiers.add("cs.cs.4a_IN_ENDSecond");
        identifiers.add("cs.cs.4a_OUT_BEGYear");
        identifiers.add("cs.cs.4a_OUT_BEGMonth");
        identifiers.add("cs.cs.4a_OUT_BEGDay");
        identifiers.add("cs.cs.4a_OUT_BEGHour");
        identifiers.add("cs.cs.4a_OUT_BEGMinute");
        identifiers.add("cs.cs.4a_OUT_BEGSecond");
        identifiers.add("cs.cs.4a_STORETMHOUR");
        identifiers.add("cs.cs.4a_STORETMMinute");
        identifiers.add("cs.cs.4a_STORETMSec");
        identifiers.add("cs.cs.4a_OUTPROCESS");
        identifiers.add("cs.cs.4a_PRESWEIGHT");
        identifiers.add("cs.cs.4b_BRANDID");
        identifiers.add("cs.cs.4b_BATCH");
        identifiers.add("cs.cs.4b_INOUTSTATUS");
        identifiers.add("cs.cs.4b_In_EndYear");
        identifiers.add("cs.cs.4b_IN_ENDMonth");
        identifiers.add("cs.cs.4b_IN_ENDDay");
        identifiers.add("cs.cs.4b_IN_ENDHour");
        identifiers.add("cs.cs.4b_IN_ENDMinute");
        identifiers.add("cs.cs.4b_IN_ENDSecond");
        identifiers.add("cs.cs.4b_OUT_BEGYear");
        identifiers.add("cs.cs.4b_OUT_BEGMonth");
        identifiers.add("cs.cs.4b_OUT_BEGDay");
        identifiers.add("cs.cs.4b_OUT_BEGHour");
        identifiers.add("cs.cs.4b_OUT_BEGMinute");
        identifiers.add("cs.cs.4b_OUT_BEGSecond");
        identifiers.add("cs.cs.4b_STORETMHOUR");
        identifiers.add("cs.cs.4b_STORETMMinute");
        identifiers.add("cs.cs.4b_STORETMSec");
        identifiers.add("cs.cs.4b_OUTPROCESS");
        identifiers.add("cs.cs.4b_PRESWEIGHT");
        identifiers.add("cs.cs.5a_BRANDID");
        identifiers.add("cs.cs.5a_BATCH");
        identifiers.add("cs.cs.5a_INOUTSTATUS");
        identifiers.add("cs.cs.5a_In_EndYear");
        identifiers.add("cs.cs.5a_IN_ENDMonth");
        identifiers.add("cs.cs.5a_IN_ENDDay");
        identifiers.add("cs.cs.5a_IN_ENDHour");
        identifiers.add("cs.cs.5a_IN_ENDMinute");
        identifiers.add("cs.cs.5a_IN_ENDSecond");
        identifiers.add("cs.cs.5a_OUT_BEGYear");
        identifiers.add("cs.cs.5a_OUT_BEGMonth");
        identifiers.add("cs.cs.5a_OUT_BEGDay");
        identifiers.add("cs.cs.5a_OUT_BEGHour");
        identifiers.add("cs.cs.5a_OUT_BEGMinute");
        identifiers.add("cs.cs.5a_OUT_BEGSecond");
        identifiers.add("cs.cs.5a_STORETMHOUR");
        identifiers.add("cs.cs.5a_STORETMMinute");
        identifiers.add("cs.cs.5a_STORETMSec");
        identifiers.add("cs.cs.5a_OUTPROCESS");
        identifiers.add("cs.cs.5a_PRESWEIGHT");
        identifiers.add("cs.cs.5b_BRANDID");
        identifiers.add("cs.cs.5b_BATCH");
        identifiers.add("cs.cs.5b_INOUTSTATUS");
        identifiers.add("cs.cs.5b_In_EndYear");
        identifiers.add("cs.cs.5b_IN_ENDMonth");
        identifiers.add("cs.cs.5b_IN_ENDDay");
        identifiers.add("cs.cs.5b_IN_ENDHour");
        identifiers.add("cs.cs.5b_IN_ENDMinute");
        identifiers.add("cs.cs.5b_IN_ENDSecond");
        identifiers.add("cs.cs.5b_OUT_BEGYear");
        identifiers.add("cs.cs.5b_OUT_BEGMonth");
        identifiers.add("cs.cs.5b_OUT_BEGDay");
        identifiers.add("cs.cs.5b_OUT_BEGHour");
        identifiers.add("cs.cs.5b_OUT_BEGMinute");
        identifiers.add("cs.cs.5b_OUT_BEGSecond");
        identifiers.add("cs.cs.5b_STORETMHOUR");
        identifiers.add("cs.cs.5b_STORETMMinute");
        identifiers.add("cs.cs.5b_STORETMSec");
        identifiers.add("cs.cs.5b_OUTPROCESS");
        identifiers.add("cs.cs.5b_PRESWEIGHT");
        identifiers.add("cs.cs.6a_BRANDID");
        identifiers.add("cs.cs.6a_BATCH");
        identifiers.add("cs.cs.6a_INOUTSTATUS");
        identifiers.add("cs.cs.6a_In_EndYear");
        identifiers.add("cs.cs.6a_IN_ENDMonth");
        identifiers.add("cs.cs.6a_IN_ENDDay");
        identifiers.add("cs.cs.6a_IN_ENDHour");
        identifiers.add("cs.cs.6a_IN_ENDMinute");
        identifiers.add("cs.cs.6a_IN_ENDSecond");
        identifiers.add("cs.cs.6a_OUT_BEGYear");
        identifiers.add("cs.cs.6a_OUT_BEGMonth");
        identifiers.add("cs.cs.6a_OUT_BEGDay");
        identifiers.add("cs.cs.6a_OUT_BEGHour");
        identifiers.add("cs.cs.6a_OUT_BEGMinute");
        identifiers.add("cs.cs.6a_OUT_BEGSecond");
        identifiers.add("cs.cs.6a_STORETMHOUR");
        identifiers.add("cs.cs.6a_STORETMMinute");
        identifiers.add("cs.cs.6a_STORETMSec");
        identifiers.add("cs.cs.6a_OUTPROCESS");
        identifiers.add("cs.cs.6a_PRESWEIGHT");
        identifiers.add("cs.cs.6b_BRANDID");
        identifiers.add("cs.cs.6b_BATCH");
        identifiers.add("cs.cs.6b_INOUTSTATUS");
        identifiers.add("cs.cs.6b_In_EndYear");
        identifiers.add("cs.cs.6b_IN_ENDMonth");
        identifiers.add("cs.cs.6b_IN_ENDDay");
        identifiers.add("cs.cs.6b_IN_ENDHour");
        identifiers.add("cs.cs.6b_IN_ENDMinute");
        identifiers.add("cs.cs.6b_IN_ENDSecond");
        identifiers.add("cs.cs.6b_OUT_BEGYear");
        identifiers.add("cs.cs.6b_OUT_BEGMonth");
        identifiers.add("cs.cs.6b_OUT_BEGDay");
        identifiers.add("cs.cs.6b_OUT_BEGHour");
        identifiers.add("cs.cs.6b_OUT_BEGMinute");
        identifiers.add("cs.cs.6b_OUT_BEGSecond");
        identifiers.add("cs.cs.6b_STORETMHOUR");
        identifiers.add("cs.cs.6b_STORETMMinute");
        identifiers.add("cs.cs.6b_STORETMSec");
        identifiers.add("cs.cs.6b_OUTPROCESS");
        identifiers.add("cs.cs.6b_PRESWEIGHT");
        identifiers.add("cs.cs.7a_BRANDID");
        identifiers.add("cs.cs.7a_BATCH");
        identifiers.add("cs.cs.7a_INOUTSTATUS");
        identifiers.add("cs.cs.7a_In_EndYear");
        identifiers.add("cs.cs.7a_IN_ENDMonth");
        identifiers.add("cs.cs.7a_IN_ENDDay");
        identifiers.add("cs.cs.7a_IN_ENDHour");
        identifiers.add("cs.cs.7a_IN_ENDMinute");
        identifiers.add("cs.cs.7a_IN_ENDSecond");
        identifiers.add("cs.cs.7a_OUT_BEGYear");
        identifiers.add("cs.cs.7a_OUT_BEGMonth");
        identifiers.add("cs.cs.7a_OUT_BEGDay");
        identifiers.add("cs.cs.7a_OUT_BEGHour");
        identifiers.add("cs.cs.7a_OUT_BEGMinute");
        identifiers.add("cs.cs.7a_OUT_BEGSecond");
        identifiers.add("cs.cs.7a_STORETMHOUR");
        identifiers.add("cs.cs.7a_STORETMMinute");
        identifiers.add("cs.cs.7a_STORETMSec");
        identifiers.add("cs.cs.7a_OUTPROCESS");
        identifiers.add("cs.cs.7a_PRESWEIGHT");
        identifiers.add("cs.cs.7b_BRANDID");
        identifiers.add("cs.cs.7b_BATCH");
        identifiers.add("cs.cs.7b_INOUTSTATUS");
        identifiers.add("cs.cs.7b_In_EndYear");
        identifiers.add("cs.cs.7b_IN_ENDMonth");
        identifiers.add("cs.cs.7b_IN_ENDDay");
        identifiers.add("cs.cs.7b_IN_ENDHour");
        identifiers.add("cs.cs.7b_IN_ENDMinute");
        identifiers.add("cs.cs.7b_IN_ENDSecond");
        identifiers.add("cs.cs.7b_OUT_BEGYear");
        identifiers.add("cs.cs.7b_OUT_BEGMonth");
        identifiers.add("cs.cs.7b_OUT_BEGDay");
        identifiers.add("cs.cs.7b_OUT_BEGHour");
        identifiers.add("cs.cs.7b_OUT_BEGMinute");
        identifiers.add("cs.cs.7b_OUT_BEGSecond");
        identifiers.add("cs.cs.7b_STORETMHOUR");
        identifiers.add("cs.cs.7b_STORETMMinute");
        identifiers.add("cs.cs.7b_STORETMSec");
        identifiers.add("cs.cs.7b_OUTPROCESS");
        identifiers.add("cs.cs.7b_PRESWEIGHT");
        identifiers.add("cs.cs.8a_BRANDID");
        identifiers.add("cs.cs.8a_BATCH");
        identifiers.add("cs.cs.8a_INOUTSTATUS");
        identifiers.add("cs.cs.8a_In_EndYear");
        identifiers.add("cs.cs.8a_IN_ENDMonth");
        identifiers.add("cs.cs.8a_IN_ENDDay");
        identifiers.add("cs.cs.8a_IN_ENDHour");
        identifiers.add("cs.cs.8a_IN_ENDMinute");
        identifiers.add("cs.cs.8a_IN_ENDSecond");
        identifiers.add("cs.cs.8a_OUT_BEGYear");
        identifiers.add("cs.cs.8a_OUT_BEGMonth");
        identifiers.add("cs.cs.8a_OUT_BEGDay");
        identifiers.add("cs.cs.8a_OUT_BEGHour");
        identifiers.add("cs.cs.8a_OUT_BEGMinute");
        identifiers.add("cs.cs.8a_OUT_BEGSecond");
        identifiers.add("cs.cs.8a_STORETMHOUR");
        identifiers.add("cs.cs.8a_STORETMMinute");
        identifiers.add("cs.cs.8a_STORETMSec");
        identifiers.add("cs.cs.8a_OUTPROCESS");
        identifiers.add("cs.cs.8a_PRESWEIGHT");
        identifiers.add("cs.cs.8b_BRANDID");
        identifiers.add("cs.cs.8b_BATCH");
        identifiers.add("cs.cs.8b_INOUTSTATUS");
        identifiers.add("cs.cs.8b_In_EndYear");
        identifiers.add("cs.cs.8b_IN_ENDMonth");
        identifiers.add("cs.cs.8b_IN_ENDDay");
        identifiers.add("cs.cs.8b_IN_ENDHour");
        identifiers.add("cs.cs.8b_IN_ENDMinute");
        identifiers.add("cs.cs.8b_IN_ENDSecond");
        identifiers.add("cs.cs.8b_OUT_BEGYear");
        identifiers.add("cs.cs.8b_OUT_BEGMonth");
        identifiers.add("cs.cs.8b_OUT_BEGDay");
        identifiers.add("cs.cs.8b_OUT_BEGHour");
        identifiers.add("cs.cs.8b_OUT_BEGMinute");
        identifiers.add("cs.cs.8b_OUT_BEGSecond");
        identifiers.add("cs.cs.8b_STORETMHOUR");
        identifiers.add("cs.cs.8b_STORETMMinute");
        identifiers.add("cs.cs.8b_STORETMSec");
        identifiers.add("cs.cs.8b_OUTPROCESS");
        identifiers.add("cs.cs.8b_PRESWEIGHT");
        identifiers.add("cs.cs.9a_BRANDID");
        identifiers.add("cs.cs.9a_BATCH");
        identifiers.add("cs.cs.9a_INOUTSTATUS");
        identifiers.add("cs.cs.9a_In_EndYear");
        identifiers.add("cs.cs.9a_IN_ENDMonth");
        identifiers.add("cs.cs.9a_IN_ENDDay");
        identifiers.add("cs.cs.9a_IN_ENDHour");
        identifiers.add("cs.cs.9a_IN_ENDMinute");
        identifiers.add("cs.cs.9a_IN_ENDSecond");
        identifiers.add("cs.cs.9a_OUT_BEGYear");
        identifiers.add("cs.cs.9a_OUT_BEGMonth");
        identifiers.add("cs.cs.9a_OUT_BEGDay");
        identifiers.add("cs.cs.9a_OUT_BEGHour");
        identifiers.add("cs.cs.9a_OUT_BEGMinute");
        identifiers.add("cs.cs.9a_OUT_BEGSecond");
        identifiers.add("cs.cs.9a_STORETMHOUR");
        identifiers.add("cs.cs.9a_STORETMMinute");
        identifiers.add("cs.cs.9a_STORETMSec");
        identifiers.add("cs.cs.9a_OUTPROCESS");
        identifiers.add("cs.cs.9a_PRESWEIGHT");
        identifiers.add("cs.cs.9b_BRANDID");
        identifiers.add("cs.cs.9b_BATCH");
        identifiers.add("cs.cs.9b_INOUTSTATUS");
        identifiers.add("cs.cs.9b_In_EndYear");
        identifiers.add("cs.cs.9b_IN_ENDMonth");
        identifiers.add("cs.cs.9b_IN_ENDDay");
        identifiers.add("cs.cs.9b_IN_ENDHour");
        identifiers.add("cs.cs.9b_IN_ENDMinute");
        identifiers.add("cs.cs.9b_IN_ENDSecond");
        identifiers.add("cs.cs.9b_OUT_BEGYear");
        identifiers.add("cs.cs.9b_OUT_BEGMonth");
        identifiers.add("cs.cs.9b_OUT_BEGDay");
        identifiers.add("cs.cs.9b_OUT_BEGHour");
        identifiers.add("cs.cs.9b_OUT_BEGMinute");
        identifiers.add("cs.cs.9b_OUT_BEGSecond");
        identifiers.add("cs.cs.9b_STORETMHOUR");
        identifiers.add("cs.cs.9b_STORETMMinute");
        identifiers.add("cs.cs.9b_STORETMSec");
        identifiers.add("cs.cs.9b_OUTPROCESS");
        identifiers.add("cs.cs.9b_PRESWEIGHT");
        identifiers.add("cs.cs.10a_BRANDID");
        identifiers.add("cs.cs.10a_BATCH");
        identifiers.add("cs.cs.10a_INOUTSTATUS");
        identifiers.add("cs.cs.10a_In_EndYear");
        identifiers.add("cs.cs.10a_IN_ENDMonth");
        identifiers.add("cs.cs.10a_IN_ENDDay");
        identifiers.add("cs.cs.10a_IN_ENDHour");
        identifiers.add("cs.cs.10a_IN_ENDMinute");
        identifiers.add("cs.cs.10a_IN_ENDSecond");
        identifiers.add("cs.cs.10a_OUT_BEGYear");
        identifiers.add("cs.cs.10a_OUT_BEGMonth");
        identifiers.add("cs.cs.10a_OUT_BEGDay");
        identifiers.add("cs.cs.10a_OUT_BEGHour");
        identifiers.add("cs.cs.10a_OUT_BEGMinute");
        identifiers.add("cs.cs.10a_OUT_BEGSecond");
        identifiers.add("cs.cs.10a_STORETMHOUR");
        identifiers.add("cs.cs.10a_STORETMMinute");
        identifiers.add("cs.cs.10a_STORETMSec");
        identifiers.add("cs.cs.10a_OUTPROCESS");
        identifiers.add("cs.cs.10a_PRESWEIGHT");
        identifiers.add("cs.cs.10b_BRANDID");
        identifiers.add("cs.cs.10b_BATCH");
        identifiers.add("cs.cs.10b_INOUTSTATUS");
        identifiers.add("cs.cs.10b_In_EndYear");
        identifiers.add("cs.cs.10b_IN_ENDMonth");
        identifiers.add("cs.cs.10b_IN_ENDDay");
        identifiers.add("cs.cs.10b_IN_ENDHour");
        identifiers.add("cs.cs.10b_IN_ENDMinute");
        identifiers.add("cs.cs.10b_IN_ENDSecond");
        identifiers.add("cs.cs.10b_OUT_BEGYear");
        identifiers.add("cs.cs.10b_OUT_BEGMonth");
        identifiers.add("cs.cs.10b_OUT_BEGDay");
        identifiers.add("cs.cs.10b_OUT_BEGHour");
        identifiers.add("cs.cs.10b_OUT_BEGMinute");
        identifiers.add("cs.cs.10b_OUT_BEGSecond");
        identifiers.add("cs.cs.10b_STORETMHOUR");
        identifiers.add("cs.cs.10b_STORETMMinute");
        identifiers.add("cs.cs.10b_STORETMSec");
        identifiers.add("cs.cs.10b_OUTPROCESS");
        identifiers.add("cs.cs.10b_PRESWEIGHT");
        identifiers.add("cs.cs.11a_BRANDID");
        identifiers.add("cs.cs.11a_BATCH");
        identifiers.add("cs.cs.11a_INOUTSTATUS");
        identifiers.add("cs.cs.11a_In_EndYear");
        identifiers.add("cs.cs.11a_IN_ENDMonth");
        identifiers.add("cs.cs.11a_IN_ENDDay");
        identifiers.add("cs.cs.11a_IN_ENDHour");
        identifiers.add("cs.cs.11a_IN_ENDMinute");
        identifiers.add("cs.cs.11a_IN_ENDSecond");
        identifiers.add("cs.cs.11a_OUT_BEGYear");
        identifiers.add("cs.cs.11a_OUT_BEGMonth");
        identifiers.add("cs.cs.11a_OUT_BEGDay");
        identifiers.add("cs.cs.11a_OUT_BEGHour");
        identifiers.add("cs.cs.11a_OUT_BEGMinute");
        identifiers.add("cs.cs.11a_OUT_BEGSecond");
        identifiers.add("cs.cs.11a_STORETMHOUR");
        identifiers.add("cs.cs.11a_STORETMMinute");
        identifiers.add("cs.cs.11a_STORETMSec");
        identifiers.add("cs.cs.11a_OUTPROCESS");
        identifiers.add("cs.cs.11a_PRESWEIGHT");
        identifiers.add("cs.cs.11b_BRANDID");
        identifiers.add("cs.cs.11b_BATCH");
        identifiers.add("cs.cs.11b_INOUTSTATUS");
        identifiers.add("cs.cs.11b_In_EndYear");
        identifiers.add("cs.cs.11b_IN_ENDMonth");
        identifiers.add("cs.cs.11b_IN_ENDDay");
        identifiers.add("cs.cs.11b_IN_ENDHour");
        identifiers.add("cs.cs.11b_IN_ENDMinute");
        identifiers.add("cs.cs.11b_IN_ENDSecond");
        identifiers.add("cs.cs.11b_OUT_BEGYear");
        identifiers.add("cs.cs.11b_OUT_BEGMonth");
        identifiers.add("cs.cs.11b_OUT_BEGDay");
        identifiers.add("cs.cs.11b_OUT_BEGHour");
        identifiers.add("cs.cs.11b_OUT_BEGMinute");
        identifiers.add("cs.cs.11b_OUT_BEGSecond");
        identifiers.add("cs.cs.11b_STORETMHOUR");
        identifiers.add("cs.cs.11b_STORETMMinute");
        identifiers.add("cs.cs.11b_STORETMSec");
        identifiers.add("cs.cs.11b_OUTPROCESS");
        identifiers.add("cs.cs.11b_PRESWEIGHT");
        identifiers.add("cs.cs.12a_BRANDID");
        identifiers.add("cs.cs.12a_BATCH");
        identifiers.add("cs.cs.12a_INOUTSTATUS");
        identifiers.add("cs.cs.12a_In_EndYear");
        identifiers.add("cs.cs.12a_IN_ENDMonth");
        identifiers.add("cs.cs.12a_IN_ENDDay");
        identifiers.add("cs.cs.12a_IN_ENDHour");
        identifiers.add("cs.cs.12a_IN_ENDMinute");
        identifiers.add("cs.cs.12a_IN_ENDSecond");
        identifiers.add("cs.cs.12a_OUT_BEGYear");
        identifiers.add("cs.cs.12a_OUT_BEGMonth");
        identifiers.add("cs.cs.12a_OUT_BEGDay");
        identifiers.add("cs.cs.12a_OUT_BEGHour");
        identifiers.add("cs.cs.12a_OUT_BEGMinute");
        identifiers.add("cs.cs.12a_OUT_BEGSecond");
        identifiers.add("cs.cs.12a_STORETMHOUR");
        identifiers.add("cs.cs.12a_STORETMMinute");
        identifiers.add("cs.cs.12a_STORETMSec");
        identifiers.add("cs.cs.12a_OUTPROCESS");
        identifiers.add("cs.cs.12a_PRESWEIGHT");
        identifiers.add("cs.cs.12b_BRANDID");
        identifiers.add("cs.cs.12b_BATCH");
        identifiers.add("cs.cs.12b_INOUTSTATUS");
        identifiers.add("cs.cs.12b_In_EndYear");
        identifiers.add("cs.cs.12b_IN_ENDMonth");
        identifiers.add("cs.cs.12b_IN_ENDDay");
        identifiers.add("cs.cs.12b_IN_ENDHour");
        identifiers.add("cs.cs.12b_IN_ENDMinute");
        identifiers.add("cs.cs.12b_IN_ENDSecond");
        identifiers.add("cs.cs.12b_OUT_BEGYear");
        identifiers.add("cs.cs.12b_OUT_BEGMonth");
        identifiers.add("cs.cs.12b_OUT_BEGDay");
        identifiers.add("cs.cs.12b_OUT_BEGHour");
        identifiers.add("cs.cs.12b_OUT_BEGMinute");
        identifiers.add("cs.cs.12b_OUT_BEGSecond");
        identifiers.add("cs.cs.12b_STORETMHOUR");
        identifiers.add("cs.cs.12b_STORETMMinute");
        identifiers.add("cs.cs.12b_STORETMSec");
        identifiers.add("cs.cs.12b_OUTPROCESS");
        identifiers.add("cs.cs.12b_PRESWEIGHT");
        identifiers.add("cs.cs.13a_BRANDID");
        identifiers.add("cs.cs.13a_BATCH");
        identifiers.add("cs.cs.13a_INOUTSTATUS");
        identifiers.add("cs.cs.13a_In_EndYear");
        identifiers.add("cs.cs.13a_IN_ENDMonth");
        identifiers.add("cs.cs.13a_IN_ENDDay");
        identifiers.add("cs.cs.13a_IN_ENDHour");
        identifiers.add("cs.cs.13a_IN_ENDMinute");
        identifiers.add("cs.cs.13a_IN_ENDSecond");
        identifiers.add("cs.cs.13a_OUT_BEGYear");
        identifiers.add("cs.cs.13a_OUT_BEGMonth");
        identifiers.add("cs.cs.13a_OUT_BEGDay");
        identifiers.add("cs.cs.13a_OUT_BEGHour");
        identifiers.add("cs.cs.13a_OUT_BEGMinute");
        identifiers.add("cs.cs.13a_OUT_BEGSecond");
        identifiers.add("cs.cs.13a_STORETMHOUR");
        identifiers.add("cs.cs.13a_STORETMMinute");
        identifiers.add("cs.cs.13a_STORETMSec");
        identifiers.add("cs.cs.13a_OUTPROCESS");
        identifiers.add("cs.cs.13a_PRESWEIGHT");
        identifiers.add("cs.cs.13b_BRANDID");
        identifiers.add("cs.cs.13b_BATCH");
        identifiers.add("cs.cs.13b_INOUTSTATUS");
        identifiers.add("cs.cs.13b_In_EndYear");
        identifiers.add("cs.cs.13b_IN_ENDMonth");
        identifiers.add("cs.cs.13b_IN_ENDDay");
        identifiers.add("cs.cs.13b_IN_ENDHour");
        identifiers.add("cs.cs.13b_IN_ENDMinute");
        identifiers.add("cs.cs.13b_IN_ENDSecond");
        identifiers.add("cs.cs.13b_OUT_BEGYear");
        identifiers.add("cs.cs.13b_OUT_BEGMonth");
        identifiers.add("cs.cs.13b_OUT_BEGDay");
        identifiers.add("cs.cs.13b_OUT_BEGHour");
        identifiers.add("cs.cs.13b_OUT_BEGMinute");
        identifiers.add("cs.cs.13b_OUT_BEGSecond");
        identifiers.add("cs.cs.13b_STORETMHOUR");
        identifiers.add("cs.cs.13b_STORETMMinute");
        identifiers.add("cs.cs.13b_STORETMSec");
        identifiers.add("cs.cs.13b_OUTPROCESS");
        identifiers.add("cs.cs.13b_PRESWEIGHT");
        identifiers.add("cs.cs.14a_BRANDID");
        identifiers.add("cs.cs.14a_BATCH");
        identifiers.add("cs.cs.14a_INOUTSTATUS");
        identifiers.add("cs.cs.14a_In_EndYear");
        identifiers.add("cs.cs.14a_IN_ENDMonth");
        identifiers.add("cs.cs.14a_IN_ENDDay");
        identifiers.add("cs.cs.14a_IN_ENDHour");
        identifiers.add("cs.cs.14a_IN_ENDMinute");
        identifiers.add("cs.cs.14a_IN_ENDSecond");
        identifiers.add("cs.cs.14a_OUT_BEGYear");
        identifiers.add("cs.cs.14a_OUT_BEGMonth");
        identifiers.add("cs.cs.14a_OUT_BEGDay");
        identifiers.add("cs.cs.14a_OUT_BEGHour");
        identifiers.add("cs.cs.14a_OUT_BEGMinute");
        identifiers.add("cs.cs.14a_OUT_BEGSecond");
        identifiers.add("cs.cs.14a_STORETMHOUR");
        identifiers.add("cs.cs.14a_STORETMMinute");
        identifiers.add("cs.cs.14a_STORETMSec");
        identifiers.add("cs.cs.14a_OUTPROCESS");
        identifiers.add("cs.cs.14a_PRESWEIGHT");
        identifiers.add("cs.cs.14b_BRANDID");
        identifiers.add("cs.cs.14b_BATCH");
        identifiers.add("cs.cs.14b_INOUTSTATUS");
        identifiers.add("cs.cs.14b_In_EndYear");
        identifiers.add("cs.cs.14b_IN_ENDMonth");
        identifiers.add("cs.cs.14b_IN_ENDDay");
        identifiers.add("cs.cs.14b_IN_ENDHour");
        identifiers.add("cs.cs.14b_IN_ENDMinute");
        identifiers.add("cs.cs.14b_IN_ENDSecond");
        identifiers.add("cs.cs.14b_OUT_BEGYear");
        identifiers.add("cs.cs.14b_OUT_BEGMonth");
        identifiers.add("cs.cs.14b_OUT_BEGDay");
        identifiers.add("cs.cs.14b_OUT_BEGHour");
        identifiers.add("cs.cs.14b_OUT_BEGMinute");
        identifiers.add("cs.cs.14b_OUT_BEGSecond");
        identifiers.add("cs.cs.14b_STORETMHOUR");
        identifiers.add("cs.cs.14b_STORETMMinute");
        identifiers.add("cs.cs.14b_STORETMSec");
        identifiers.add("cs.cs.14b_OUTPROCESS");
        identifiers.add("cs.cs.14b_PRESWEIGHT");
        identifiers.add("cs.cs.15a_BRANDID");
        identifiers.add("cs.cs.15a_BATCH");
        identifiers.add("cs.cs.15a_INOUTSTATUS");
        identifiers.add("cs.cs.15a_In_EndYear");
        identifiers.add("cs.cs.15a_IN_ENDMonth");
        identifiers.add("cs.cs.15a_IN_ENDDay");
        identifiers.add("cs.cs.15a_IN_ENDHour");
        identifiers.add("cs.cs.15a_IN_ENDMinute");
        identifiers.add("cs.cs.15a_IN_ENDSecond");
        identifiers.add("cs.cs.15a_OUT_BEGYear");
        identifiers.add("cs.cs.15a_OUT_BEGMonth");
        identifiers.add("cs.cs.15a_OUT_BEGDay");
        identifiers.add("cs.cs.15a_OUT_BEGHour");
        identifiers.add("cs.cs.15a_OUT_BEGMinute");
        identifiers.add("cs.cs.15a_OUT_BEGSecond");
        identifiers.add("cs.cs.15a_STORETMHOUR");
        identifiers.add("cs.cs.15a_STORETMMinute");
        identifiers.add("cs.cs.15a_STORETMSec");
        identifiers.add("cs.cs.15a_OUTPROCESS");
        identifiers.add("cs.cs.15a_PRESWEIGHT");
        identifiers.add("cs.cs.15b_BRANDID");
        identifiers.add("cs.cs.15b_BATCH");
        identifiers.add("cs.cs.15b_INOUTSTATUS");
        identifiers.add("cs.cs.15b_In_EndYear");
        identifiers.add("cs.cs.15b_IN_ENDMonth");
        identifiers.add("cs.cs.15b_IN_ENDDay");
        identifiers.add("cs.cs.15b_IN_ENDHour");
        identifiers.add("cs.cs.15b_IN_ENDMinute");
        identifiers.add("cs.cs.15b_IN_ENDSecond");
        identifiers.add("cs.cs.15b_OUT_BEGYear");
        identifiers.add("cs.cs.15b_OUT_BEGMonth");
        identifiers.add("cs.cs.15b_OUT_BEGDay");
        identifiers.add("cs.cs.15b_OUT_BEGHour");
        identifiers.add("cs.cs.15b_OUT_BEGMinute");
        identifiers.add("cs.cs.15b_OUT_BEGSecond");
        identifiers.add("cs.cs.15b_STORETMHOUR");
        identifiers.add("cs.cs.15b_STORETMMinute");
        identifiers.add("cs.cs.15b_STORETMSec");
        identifiers.add("cs.cs.15b_OUTPROCESS");
        identifiers.add("cs.cs.15b_PRESWEIGHT");
        identifiers.add("cs.cs.16a_BRANDID");
        identifiers.add("cs.cs.16a_BATCH");
        identifiers.add("cs.cs.16a_INOUTSTATUS");
        identifiers.add("cs.cs.16a_In_EndYear");
        identifiers.add("cs.cs.16a_IN_ENDMonth");
        identifiers.add("cs.cs.16a_IN_ENDDay");
        identifiers.add("cs.cs.16a_IN_ENDHour");
        identifiers.add("cs.cs.16a_IN_ENDMinute");
        identifiers.add("cs.cs.16a_IN_ENDSecond");
        identifiers.add("cs.cs.16a_OUT_BEGYear");
        identifiers.add("cs.cs.16a_OUT_BEGMonth");
        identifiers.add("cs.cs.16a_OUT_BEGDay");
        identifiers.add("cs.cs.16a_OUT_BEGHour");
        identifiers.add("cs.cs.16a_OUT_BEGMinute");
        identifiers.add("cs.cs.16a_OUT_BEGSecond");
        identifiers.add("cs.cs.16a_STORETMHOUR");
        identifiers.add("cs.cs.16a_STORETMMinute");
        identifiers.add("cs.cs.16a_STORETMSec");
        identifiers.add("cs.cs.16a_OUTPROCESS");
        identifiers.add("cs.cs.16a_PRESWEIGHT");
        identifiers.add("cs.cs.16b_BRANDID");
        identifiers.add("cs.cs.16b_BATCH");
        identifiers.add("cs.cs.16b_INOUTSTATUS");
        identifiers.add("cs.cs.16b_In_EndYear");
        identifiers.add("cs.cs.16b_IN_ENDMonth");
        identifiers.add("cs.cs.16b_IN_ENDDay");
        identifiers.add("cs.cs.16b_IN_ENDHour");
        identifiers.add("cs.cs.16b_IN_ENDMinute");
        identifiers.add("cs.cs.16b_IN_ENDSecond");
        identifiers.add("cs.cs.16b_OUT_BEGYear");
        identifiers.add("cs.cs.16b_OUT_BEGMonth");
        identifiers.add("cs.cs.16b_OUT_BEGDay");
        identifiers.add("cs.cs.16b_OUT_BEGHour");
        identifiers.add("cs.cs.16b_OUT_BEGMinute");
        identifiers.add("cs.cs.16b_OUT_BEGSecond");
        identifiers.add("cs.cs.16b_STORETMHOUR");
        identifiers.add("cs.cs.16b_STORETMMinute");
        identifiers.add("cs.cs.16b_STORETMSec");
        identifiers.add("cs.cs.16b_OUTPROCESS");
        identifiers.add("cs.cs.16b_PRESWEIGHT");
        identifiers.add("cs.cs.17a_BRANDID");
        identifiers.add("cs.cs.17a_BATCH");
        identifiers.add("cs.cs.17a_INOUTSTATUS");
        identifiers.add("cs.cs.17a_In_EndYear");
        identifiers.add("cs.cs.17a_IN_ENDMonth");
        identifiers.add("cs.cs.17a_IN_ENDDay");
        identifiers.add("cs.cs.17a_IN_ENDHour");
        identifiers.add("cs.cs.17a_IN_ENDMinute");
        identifiers.add("cs.cs.17a_IN_ENDSecond");
        identifiers.add("cs.cs.17a_OUT_BEGYear");
        identifiers.add("cs.cs.17a_OUT_BEGMonth");
        identifiers.add("cs.cs.17a_OUT_BEGDay");
        identifiers.add("cs.cs.17a_OUT_BEGHour");
        identifiers.add("cs.cs.17a_OUT_BEGMinute");
        identifiers.add("cs.cs.17a_OUT_BEGSecond");
        identifiers.add("cs.cs.17a_STORETMHOUR");
        identifiers.add("cs.cs.17a_STORETMMinute");
        identifiers.add("cs.cs.17a_STORETMSec");
        identifiers.add("cs.cs.17a_OUTPROCESS");
        identifiers.add("cs.cs.17a_PRESWEIGHT");
        identifiers.add("cs.cs.17b_BRANDID");
        identifiers.add("cs.cs.17b_BATCH");
        identifiers.add("cs.cs.17b_INOUTSTATUS");
        identifiers.add("cs.cs.17b_In_EndYear");
        identifiers.add("cs.cs.17b_IN_ENDMonth");
        identifiers.add("cs.cs.17b_IN_ENDDay");
        identifiers.add("cs.cs.17b_IN_ENDHour");
        identifiers.add("cs.cs.17b_IN_ENDMinute");
        identifiers.add("cs.cs.17b_IN_ENDSecond");
        identifiers.add("cs.cs.17b_OUT_BEGYear");
        identifiers.add("cs.cs.17b_OUT_BEGMonth");
        identifiers.add("cs.cs.17b_OUT_BEGDay");
        identifiers.add("cs.cs.17b_OUT_BEGHour");
        identifiers.add("cs.cs.17b_OUT_BEGMinute");
        identifiers.add("cs.cs.17b_OUT_BEGSecond");
        identifiers.add("cs.cs.17b_STORETMHOUR");
        identifiers.add("cs.cs.17b_STORETMMinute");
        identifiers.add("cs.cs.17b_STORETMSec");
        identifiers.add("cs.cs.17b_OUTPROCESS");
        identifiers.add("cs.cs.17b_PRESWEIGHT");
        identifiers.add("cs.cs.18a_BRANDID");
        identifiers.add("cs.cs.18a_BATCH");
        identifiers.add("cs.cs.18a_INOUTSTATUS");
        identifiers.add("cs.cs.18a_In_EndYear");
        identifiers.add("cs.cs.18a_IN_ENDMonth");
        identifiers.add("cs.cs.18a_IN_ENDDay");
        identifiers.add("cs.cs.18a_IN_ENDHour");
        identifiers.add("cs.cs.18a_IN_ENDMinute");
        identifiers.add("cs.cs.18a_IN_ENDSecond");
        identifiers.add("cs.cs.18a_OUT_BEGYear");
        identifiers.add("cs.cs.18a_OUT_BEGMonth");
        identifiers.add("cs.cs.18a_OUT_BEGDay");
        identifiers.add("cs.cs.18a_OUT_BEGHour");
        identifiers.add("cs.cs.18a_OUT_BEGMinute");
        identifiers.add("cs.cs.18a_OUT_BEGSecond");
        identifiers.add("cs.cs.18a_STORETMHOUR");
        identifiers.add("cs.cs.18a_STORETMMinute");
        identifiers.add("cs.cs.18a_STORETMSec");
        identifiers.add("cs.cs.18a_OUTPROCESS");
        identifiers.add("cs.cs.18a_PRESWEIGHT");
        identifiers.add("cs.cs.18b_BRANDID");
        identifiers.add("cs.cs.18b_BATCH");
        identifiers.add("cs.cs.18b_INOUTSTATUS");
        identifiers.add("cs.cs.18b_In_EndYear");
        identifiers.add("cs.cs.18b_IN_ENDMonth");
        identifiers.add("cs.cs.18b_IN_ENDDay");
        identifiers.add("cs.cs.18b_IN_ENDHour");
        identifiers.add("cs.cs.18b_IN_ENDMinute");
        identifiers.add("cs.cs.18b_IN_ENDSecond");
        identifiers.add("cs.cs.18b_OUT_BEGYear");
        identifiers.add("cs.cs.18b_OUT_BEGMonth");
        identifiers.add("cs.cs.18b_OUT_BEGDay");
        identifiers.add("cs.cs.18b_OUT_BEGHour");
        identifiers.add("cs.cs.18b_OUT_BEGMinute");
        identifiers.add("cs.cs.18b_OUT_BEGSecond");
        identifiers.add("cs.cs.18b_STORETMHOUR");
        identifiers.add("cs.cs.18b_STORETMMinute");
        identifiers.add("cs.cs.18b_STORETMSec");
        identifiers.add("cs.cs.18b_OUTPROCESS");
        identifiers.add("cs.cs.18b_PRESWEIGHT");

        identifiers.add("cp4.cp4.1A-InWeight");
        identifiers.add("cp4.cp4.1B-InWeight");
        identifiers.add("cp4.cp4.2A-InWeight");
        identifiers.add("cp4.cp4.2B-InWeight");
        identifiers.add("cp4.cp4.3A-InWeight");
        identifiers.add("cp4.cp4.3B-InWeight");
        identifiers.add("cp4.cp4.4A-InWeight");
        identifiers.add("cp4.cp4.4B-InWeight");
        identifiers.add("cp4.cp4.5A-InWeight");
        identifiers.add("cp4.cp4.5B-InWeight");
        identifiers.add("cp4.cp4.6A-InWeight");
        identifiers.add("cp4.cp4.6B-InWeight");
        identifiers.add("cp4.cp4.7A-InWeight");
        identifiers.add("cp4.cp4.7B-InWeight");
        identifiers.add("cp4.cp4.8A-InWeight");
        identifiers.add("cp4.cp4.8B-InWeight");
        identifiers.add("cp4.cp4.9A-InWeight");
        identifiers.add("cp4.cp4.9B-InWeight");
        identifiers.add("cp4.cp4.10A-InWeight");
        identifiers.add("cp4.cp4.10B-InWeight");
        identifiers.add("cp4.cp4.11A-InWeight");
        identifiers.add("cp4.cp4.11B-InWeight");
        identifiers.add("cp4.cp4.12A-InWeight");
        identifiers.add("cp4.cp4.12B-InWeight");
        identifiers.add("cp4.cp4.13A-InWeight");
        identifiers.add("cp4.cp4.13B-InWeight");
        identifiers.add("cp4.cp4.14A-InWeight");
        identifiers.add("cp4.cp4.14B-InWeight");
        identifiers.add("cp4.cp4.15A-InWeight");
        identifiers.add("cp4.cp4.15B-InWeight");
        identifiers.add("cp4.cp4.16A-InWeight");
        identifiers.add("cp4.cp4.16B-InWeight");
        identifiers.add("cp4.cp4.17A-InWeight");
        identifiers.add("cp4.cp4.17B-InWeight");
        identifiers.add("cp4.cp4.18A-InWeight");
        identifiers.add("cp4.cp4.18B-InWeight");

        //前18个柜子 end

        //19-20柜子
        identifiers.add("cp2.cp2.19a_BRANDID");
        identifiers.add("cp2.cp2.19a_BATCH");
        identifiers.add("cp2.cp2.19a_INOUTSTATUS");
        identifiers.add("cp2.cp2.19a_TotalWeigh");
        identifiers.add("cp2.cp2.19a_In_EndYear");
        identifiers.add("cp2.cp2.19a_IN_ENDMonth");
        identifiers.add("cp2.cp2.19a_IN_ENDDay");
        identifiers.add("cp2.cp2.19a_IN_ENDHour");
        identifiers.add("cp2.cp2.19a_IN_ENDMinute");
        identifiers.add("cp2.cp2.19a_IN_ENDSecond");
        identifiers.add("cp2.cp2.19a_OUT_BEGYear");
        identifiers.add("cp2.cp2.19a_OUT_BEGMonth");
        identifiers.add("cp2.cp2.19a_OUT_BEGDay");
        identifiers.add("cp2.cp2.19a_OUT_BEGHour");
        identifiers.add("cp2.cp2.19a_OUT_BEGMinute");
        identifiers.add("cp2.cp2.19a_OUT_BEGSecond");
        identifiers.add("cp2.cp2.19a_STORETMHOUR");
        identifiers.add("cp2.cp2.19a_STORETMMinute");
        identifiers.add("cp2.cp2.19a_STORETMSec");
        identifiers.add("cp2.cp2.19a_OUTPROCESS");
        identifiers.add("cp2.cp2.19a_PRESWEIGHT");
        identifiers.add("cp2.cp2.19b_BRANDID");
        identifiers.add("cp2.cp2.19b_BATCH");
        identifiers.add("cp2.cp2.19b_INOUTSTATUS");
        identifiers.add("cp2.cp2.19b_TotalWeigh");
        identifiers.add("cp2.cp2.19b_In_EndYear");
        identifiers.add("cp2.cp2.19b_IN_ENDMonth");
        identifiers.add("cp2.cp2.19b_IN_ENDDay");
        identifiers.add("cp2.cp2.19b_IN_ENDHour");
        identifiers.add("cp2.cp2.19b_IN_ENDMinute");
        identifiers.add("cp2.cp2.19b_IN_ENDSecond");
        identifiers.add("cp2.cp2.19b_OUT_BEGYear");
        identifiers.add("cp2.cp2.19b_OUT_BEGMonth");
        identifiers.add("cp2.cp2.19b_OUT_BEGDay");
        identifiers.add("cp2.cp2.19b_OUT_BEGHour");
        identifiers.add("cp2.cp2.19b_OUT_BEGMinute");
        identifiers.add("cp2.cp2.19b_OUT_BEGSecond");
        identifiers.add("cp2.cp2.19b_STORETMHOUR");
        identifiers.add("cp2.cp2.19b_STORETMMinute");
        identifiers.add("cp2.cp2.19b_STORETMSec");
        identifiers.add("cp2.cp2.19b_OUTPROCESS");
        identifiers.add("cp2.cp2.19b_PRESWEIGHT");
        identifiers.add("cp2.cp2.20a_BRANDID");
        identifiers.add("cp2.cp2.20a_BATCH");
        identifiers.add("cp2.cp2.20a_INOUTSTATUS");
        identifiers.add("cp2.cp2.20a_TotalWeigh");
        identifiers.add("cp2.cp2.20a_In_EndYear");
        identifiers.add("cp2.cp2.20a_IN_ENDMonth");
        identifiers.add("cp2.cp2.20a_IN_ENDDay");
        identifiers.add("cp2.cp2.20a_IN_ENDHour");
        identifiers.add("cp2.cp2.20a_IN_ENDMinute");
        identifiers.add("cp2.cp2.20a_IN_ENDSecond");
        identifiers.add("cp2.cp2.20a_OUT_BEGYear");
        identifiers.add("cp2.cp2.20a_OUT_BEGMonth");
        identifiers.add("cp2.cp2.20a_OUT_BEGDay");
        identifiers.add("cp2.cp2.20a_OUT_BEGHour");
        identifiers.add("cp2.cp2.20a_OUT_BEGMinute");
        identifiers.add("cp2.cp2.20a_OUT_BEGSecond");
        identifiers.add("cp2.cp2.20a_STORETMHOUR");
        identifiers.add("cp2.cp2.20a_STORETMMinute");
        identifiers.add("cp2.cp2.20a_STORETMSec");
        identifiers.add("cp2.cp2.20a_OUTPROCESS");
        identifiers.add("cp2.cp2.20a_PRESWEIGHT");
        identifiers.add("cp2.cp2.20b_BRANDID");
        identifiers.add("cp2.cp2.20b_BATCH");
        identifiers.add("cp2.cp2.20b_INOUTSTATUS");
        identifiers.add("cp2.cp2.20b_TotalWeigh");
        identifiers.add("cp2.cp2.20b_In_EndYear");
        identifiers.add("cp2.cp2.20b_IN_ENDMonth");
        identifiers.add("cp2.cp2.20b_IN_ENDDay");
        identifiers.add("cp2.cp2.20b_IN_ENDHour");
        identifiers.add("cp2.cp2.20b_IN_ENDMinute");
        identifiers.add("cp2.cp2.20b_IN_ENDSecond");
        identifiers.add("cp2.cp2.20b_OUT_BEGYear");
        identifiers.add("cp2.cp2.20b_OUT_BEGMonth");
        identifiers.add("cp2.cp2.20b_OUT_BEGDay");
        identifiers.add("cp2.cp2.20b_OUT_BEGHour");
        identifiers.add("cp2.cp2.20b_OUT_BEGMinute");
        identifiers.add("cp2.cp2.20b_OUT_BEGSecond");
        identifiers.add("cp2.cp2.20b_STORETMHOUR");
        identifiers.add("cp2.cp2.20b_STORETMMinute");
        identifiers.add("cp2.cp2.20b_STORETMSec");
        identifiers.add("cp2.cp2.20b_OUTPROCESS");
        identifiers.add("cp2.cp2.20b_PRESWEIGHT");

        //预混柜
        identifiers.add("yp1.yp1.1a_BRANDID");
        identifiers.add("yp1.yp1.1a_BATCH");
        identifiers.add("yp1.yp1.1a_INOUTSTATUS");
        identifiers.add("yp1.yp1.1a_TotalWeigh");
        identifiers.add("yp1.yp1.1a_In_EndYear");
        identifiers.add("yp1.yp1.1a_IN_ENDMonth");
        identifiers.add("yp1.yp1.1a_IN_ENDDay");
        identifiers.add("yp1.yp1.1a_IN_ENDHour");
        identifiers.add("yp1.yp1.1a_IN_ENDMinute");
        identifiers.add("yp1.yp1.1a_IN_ENDSecond");
        identifiers.add("yp1.yp1.1a_OUT_BEGYear");
        identifiers.add("yp1.yp1.1a_OUT_BEGMonth");
        identifiers.add("yp1.yp1.1a_OUT_BEGDay");
        identifiers.add("yp1.yp1.1a_OUT_BEGHour");
        identifiers.add("yp1.yp1.1a_OUT_BEGMinute");
        identifiers.add("yp1.yp1.1a_OUT_BEGSecond");
        identifiers.add("yp1.yp1.1a_STORETMHOUR");
        identifiers.add("yp1.yp1.1a_STORETMMinute");
        identifiers.add("yp1.yp1.1a_STORETMSec");
        identifiers.add("yp1.yp1.1a_OUTPROCESS");
        identifiers.add("yp1.yp1.1a_PRESWEIGHT");
        identifiers.add("yp1.yp1.1b_BRANDID");
        identifiers.add("yp1.yp1.1b_BATCH");
        identifiers.add("yp1.yp1.1b_INOUTSTATUS");
        identifiers.add("yp1.yp1.1b_TotalWeigh");
        identifiers.add("yp1.yp1.1b_In_EndYear");
        identifiers.add("yp1.yp1.1b_IN_ENDMonth");
        identifiers.add("yp1.yp1.1b_IN_ENDDay");
        identifiers.add("yp1.yp1.1b_IN_ENDHour");
        identifiers.add("yp1.yp1.1b_IN_ENDMinute");
        identifiers.add("yp1.yp1.1b_IN_ENDSecond");
        identifiers.add("yp1.yp1.1b_OUT_BEGYear");
        identifiers.add("yp1.yp1.1b_OUT_BEGMonth");
        identifiers.add("yp1.yp1.1b_OUT_BEGDay");
        identifiers.add("yp1.yp1.1b_OUT_BEGHour");
        identifiers.add("yp1.yp1.1b_OUT_BEGMinute");
        identifiers.add("yp1.yp1.1b_OUT_BEGSecond");
        identifiers.add("yp1.yp1.1b_STORETMHOUR");
        identifiers.add("yp1.yp1.1b_STORETMMinute");
        identifiers.add("yp1.yp1.1b_STORETMSec");
        identifiers.add("yp1.yp1.1b_OUTPROCESS");
        identifiers.add("yp1.yp1.1b_PRESWEIGHT");
        identifiers.add("yp1.yp1.2a_BRANDID");
        identifiers.add("yp1.yp1.2a_BATCH");
        identifiers.add("yp1.yp1.2a_INOUTSTATUS");
        identifiers.add("yp1.yp1.2a_TotalWeigh");
        identifiers.add("yp1.yp1.2a_In_EndYear");
        identifiers.add("yp1.yp1.2a_IN_ENDMonth");
        identifiers.add("yp1.yp1.2a_IN_ENDDay");
        identifiers.add("yp1.yp1.2a_IN_ENDHour");
        identifiers.add("yp1.yp1.2a_IN_ENDMinute");
        identifiers.add("yp1.yp1.2a_IN_ENDSecond");
        identifiers.add("yp1.yp1.2a_OUT_BEGYear");
        identifiers.add("yp1.yp1.2a_OUT_BEGMonth");
        identifiers.add("yp1.yp1.2a_OUT_BEGDay");
        identifiers.add("yp1.yp1.2a_OUT_BEGHour");
        identifiers.add("yp1.yp1.2a_OUT_BEGMinute");
        identifiers.add("yp1.yp1.2a_OUT_BEGSecond");
        identifiers.add("yp1.yp1.2a_STORETMHOUR");
        identifiers.add("yp1.yp1.2a_STORETMMinute");
        identifiers.add("yp1.yp1.2a_STORETMSec");
        identifiers.add("yp1.yp1.2a_OUTPROCESS");
        identifiers.add("yp1.yp1.2a_PRESWEIGHT");
        identifiers.add("yp1.yp1.2b_BRANDID");
        identifiers.add("yp1.yp1.2b_BATCH");
        identifiers.add("yp1.yp1.2b_INOUTSTATUS");
        identifiers.add("yp1.yp1.2b_TotalWeigh");
        identifiers.add("yp1.yp1.2b_In_EndYear");
        identifiers.add("yp1.yp1.2b_IN_ENDMonth");
        identifiers.add("yp1.yp1.2b_IN_ENDDay");
        identifiers.add("yp1.yp1.2b_IN_ENDHour");
        identifiers.add("yp1.yp1.2b_IN_ENDMinute");
        identifiers.add("yp1.yp1.2b_IN_ENDSecond");
        identifiers.add("yp1.yp1.2b_OUT_BEGYear");
        identifiers.add("yp1.yp1.2b_OUT_BEGMonth");
        identifiers.add("yp1.yp1.2b_OUT_BEGDay");
        identifiers.add("yp1.yp1.2b_OUT_BEGHour");
        identifiers.add("yp1.yp1.2b_OUT_BEGMinute");
        identifiers.add("yp1.yp1.2b_OUT_BEGSecond");
        identifiers.add("yp1.yp1.2b_STORETMHOUR");
        identifiers.add("yp1.yp1.2b_STORETMMinute");
        identifiers.add("yp1.yp1.2b_STORETMSec");
        identifiers.add("yp1.yp1.2b_OUTPROCESS");
        identifiers.add("yp1.yp1.2b_PRESWEIGHT");
        identifiers.add("yp1.yp1.3a_BRANDID");
        identifiers.add("yp1.yp1.3a_BATCH");
        identifiers.add("yp1.yp1.3a_INOUTSTATUS");
        identifiers.add("yp1.yp1.3a_TotalWeigh");
        identifiers.add("yp1.yp1.3a_In_EndYear");
        identifiers.add("yp1.yp1.3a_IN_ENDMonth");
        identifiers.add("yp1.yp1.3a_IN_ENDDay");
        identifiers.add("yp1.yp1.3a_IN_ENDHour");
        identifiers.add("yp1.yp1.3a_IN_ENDMinute");
        identifiers.add("yp1.yp1.3a_IN_ENDSecond");
        identifiers.add("yp1.yp1.3a_OUT_BEGYear");
        identifiers.add("yp1.yp1.3a_OUT_BEGMonth");
        identifiers.add("yp1.yp1.3a_OUT_BEGDay");
        identifiers.add("yp1.yp1.3a_OUT_BEGHour");
        identifiers.add("yp1.yp1.3a_OUT_BEGMinute");
        identifiers.add("yp1.yp1.3a_OUT_BEGSecond");
        identifiers.add("yp1.yp1.3a_STORETMHOUR");
        identifiers.add("yp1.yp1.3a_STORETMMinute");
        identifiers.add("yp1.yp1.3a_STORETMSec");
        identifiers.add("yp1.yp1.3a_OUTPROCESS");
        identifiers.add("yp1.yp1.3a_PRESWEIGHT");
        identifiers.add("yp1.yp1.3b_BRANDID");
        identifiers.add("yp1.yp1.3b_BATCH");
        identifiers.add("yp1.yp1.3b_INOUTSTATUS");
        identifiers.add("yp1.yp1.3b_TotalWeigh");
        identifiers.add("yp1.yp1.3b_In_EndYear");
        identifiers.add("yp1.yp1.3b_IN_ENDMonth");
        identifiers.add("yp1.yp1.3b_IN_ENDDay");
        identifiers.add("yp1.yp1.3b_IN_ENDHour");
        identifiers.add("yp1.yp1.3b_IN_ENDMinute");
        identifiers.add("yp1.yp1.3b_IN_ENDSecond");
        identifiers.add("yp1.yp1.3b_OUT_BEGYear");
        identifiers.add("yp1.yp1.3b_OUT_BEGMonth");
        identifiers.add("yp1.yp1.3b_OUT_BEGDay");
        identifiers.add("yp1.yp1.3b_OUT_BEGHour");
        identifiers.add("yp1.yp1.3b_OUT_BEGMinute");
        identifiers.add("yp1.yp1.3b_OUT_BEGSecond");
        identifiers.add("yp1.yp1.3b_STORETMHOUR");
        identifiers.add("yp1.yp1.3b_STORETMMinute");
        identifiers.add("yp1.yp1.3b_STORETMSec");
        identifiers.add("yp1.yp1.3b_OUTPROCESS");
        identifiers.add("yp1.yp1.3b_PRESWEIGHT");
        identifiers.add("yp1.yp1.4a_BRANDID");
        identifiers.add("yp1.yp1.4a_BATCH");
        identifiers.add("yp1.yp1.4a_INOUTSTATUS");
        identifiers.add("yp1.yp1.4a_TotalWeigh");
        identifiers.add("yp1.yp1.4a_In_EndYear");
        identifiers.add("yp1.yp1.4a_IN_ENDMonth");
        identifiers.add("yp1.yp1.4a_IN_ENDDay");
        identifiers.add("yp1.yp1.4a_IN_ENDHour");
        identifiers.add("yp1.yp1.4a_IN_ENDMinute");
        identifiers.add("yp1.yp1.4a_IN_ENDSecond");
        identifiers.add("yp1.yp1.4a_OUT_BEGYear");
        identifiers.add("yp1.yp1.4a_OUT_BEGMonth");
        identifiers.add("yp1.yp1.4a_OUT_BEGDay");
        identifiers.add("yp1.yp1.4a_OUT_BEGHour");
        identifiers.add("yp1.yp1.4a_OUT_BEGMinute");
        identifiers.add("yp1.yp1.4a_OUT_BEGSecond");
        identifiers.add("yp1.yp1.4a_STORETMHOUR");
        identifiers.add("yp1.yp1.4a_STORETMMinute");
        identifiers.add("yp1.yp1.4a_STORETMSec");
        identifiers.add("yp1.yp1.4a_OUTPROCESS");
        identifiers.add("yp1.yp1.4a_PRESWEIGHT");
        identifiers.add("yp1.yp1.4b_BRANDID");
        identifiers.add("yp1.yp1.4b_BATCH");
        identifiers.add("yp1.yp1.4b_INOUTSTATUS");
        identifiers.add("yp1.yp1.4b_TotalWeigh");
        identifiers.add("yp1.yp1.4b_In_EndYear");
        identifiers.add("yp1.yp1.4b_IN_ENDMonth");
        identifiers.add("yp1.yp1.4b_IN_ENDDay");
        identifiers.add("yp1.yp1.4b_IN_ENDHour");
        identifiers.add("yp1.yp1.4b_IN_ENDMinute");
        identifiers.add("yp1.yp1.4b_IN_ENDSecond");
        identifiers.add("yp1.yp1.4b_OUT_BEGYear");
        identifiers.add("yp1.yp1.4b_OUT_BEGMonth");
        identifiers.add("yp1.yp1.4b_OUT_BEGDay");
        identifiers.add("yp1.yp1.4b_OUT_BEGHour");
        identifiers.add("yp1.yp1.4b_OUT_BEGMinute");
        identifiers.add("yp1.yp1.4b_OUT_BEGSecond");
        identifiers.add("yp1.yp1.4b_STORETMHOUR");
        identifiers.add("yp1.yp1.4b_STORETMMinute");
        identifiers.add("yp1.yp1.4b_STORETMSec");
        identifiers.add("yp1.yp1.4b_OUTPROCESS");
        identifiers.add("yp1.yp1.4b_PRESWEIGHT");
        identifiers.add("yp1.yp1.5a_BRANDID");
        identifiers.add("yp1.yp1.5a_BATCH");
        identifiers.add("yp1.yp1.5a_INOUTSTATUS");
        identifiers.add("yp1.yp1.5a_TotalWeigh");
        identifiers.add("yp1.yp1.5a_In_EndYear");
        identifiers.add("yp1.yp1.5a_IN_ENDMonth");
        identifiers.add("yp1.yp1.5a_IN_ENDDay");
        identifiers.add("yp1.yp1.5a_IN_ENDHour");
        identifiers.add("yp1.yp1.5a_IN_ENDMinute");
        identifiers.add("yp1.yp1.5a_IN_ENDSecond");
        identifiers.add("yp1.yp1.5a_OUT_BEGYear");
        identifiers.add("yp1.yp1.5a_OUT_BEGMonth");
        identifiers.add("yp1.yp1.5a_OUT_BEGDay");
        identifiers.add("yp1.yp1.5a_OUT_BEGHour");
        identifiers.add("yp1.yp1.5a_OUT_BEGMinute");
        identifiers.add("yp1.yp1.5a_OUT_BEGSecond");
        identifiers.add("yp1.yp1.5a_STORETMHOUR");
        identifiers.add("yp1.yp1.5a_STORETMMinute");
        identifiers.add("yp1.yp1.5a_STORETMSec");
        identifiers.add("yp1.yp1.5a_OUTPROCESS");
        identifiers.add("yp1.yp1.5a_PRESWEIGHT");
        identifiers.add("yp1.yp1.5b_BRANDID");
        identifiers.add("yp1.yp1.5b_BATCH");
        identifiers.add("yp1.yp1.5b_INOUTSTATUS");
        identifiers.add("yp1.yp1.5b_TotalWeigh");
        identifiers.add("yp1.yp1.5b_In_EndYear");
        identifiers.add("yp1.yp1.5b_IN_ENDMonth");
        identifiers.add("yp1.yp1.5b_IN_ENDDay");
        identifiers.add("yp1.yp1.5b_IN_ENDHour");
        identifiers.add("yp1.yp1.5b_IN_ENDMinute");
        identifiers.add("yp1.yp1.5b_IN_ENDSecond");
        identifiers.add("yp1.yp1.5b_OUT_BEGYear");
        identifiers.add("yp1.yp1.5b_OUT_BEGMonth");
        identifiers.add("yp1.yp1.5b_OUT_BEGDay");
        identifiers.add("yp1.yp1.5b_OUT_BEGHour");
        identifiers.add("yp1.yp1.5b_OUT_BEGMinute");
        identifiers.add("yp1.yp1.5b_OUT_BEGSecond");
        identifiers.add("yp1.yp1.5b_STORETMHOUR");
        identifiers.add("yp1.yp1.5b_STORETMMinute");
        identifiers.add("yp1.yp1.5b_STORETMSec");
        identifiers.add("yp1.yp1.5b_OUTPROCESS");
        identifiers.add("yp1.yp1.5b_PRESWEIGHT");
        identifiers.add("yp1.yp1.6a_BRANDID");
        identifiers.add("yp1.yp1.6a_BATCH");
        identifiers.add("yp1.yp1.6a_INOUTSTATUS");
        identifiers.add("yp1.yp1.6a_TotalWeigh");
        identifiers.add("yp1.yp1.6a_In_EndYear");
        identifiers.add("yp1.yp1.6a_IN_ENDMonth");
        identifiers.add("yp1.yp1.6a_IN_ENDDay");
        identifiers.add("yp1.yp1.6a_IN_ENDHour");
        identifiers.add("yp1.yp1.6a_IN_ENDMinute");
        identifiers.add("yp1.yp1.6a_IN_ENDSecond");
        identifiers.add("yp1.yp1.6a_OUT_BEGYear");
        identifiers.add("yp1.yp1.6a_OUT_BEGMonth");
        identifiers.add("yp1.yp1.6a_OUT_BEGDay");
        identifiers.add("yp1.yp1.6a_OUT_BEGHour");
        identifiers.add("yp1.yp1.6a_OUT_BEGMinute");
        identifiers.add("yp1.yp1.6a_OUT_BEGSecond");
        identifiers.add("yp1.yp1.6a_STORETMHOUR");
        identifiers.add("yp1.yp1.6a_STORETMMinute");
        identifiers.add("yp1.yp1.6a_STORETMSec");
        identifiers.add("yp1.yp1.6a_OUTPROCESS");
        identifiers.add("yp1.yp1.6a_PRESWEIGHT");
        identifiers.add("yp1.yp1.6b_BRANDID");
        identifiers.add("yp1.yp1.6b_BATCH");
        identifiers.add("yp1.yp1.6b_INOUTSTATUS");
        identifiers.add("yp1.yp1.6b_TotalWeigh");
        identifiers.add("yp1.yp1.6b_In_EndYear");
        identifiers.add("yp1.yp1.6b_IN_ENDMonth");
        identifiers.add("yp1.yp1.6b_IN_ENDDay");
        identifiers.add("yp1.yp1.6b_IN_ENDHour");
        identifiers.add("yp1.yp1.6b_IN_ENDMinute");
        identifiers.add("yp1.yp1.6b_IN_ENDSecond");
        identifiers.add("yp1.yp1.6b_OUT_BEGYear");
        identifiers.add("yp1.yp1.6b_OUT_BEGMonth");
        identifiers.add("yp1.yp1.6b_OUT_BEGDay");
        identifiers.add("yp1.yp1.6b_OUT_BEGHour");
        identifiers.add("yp1.yp1.6b_OUT_BEGMinute");
        identifiers.add("yp1.yp1.6b_OUT_BEGSecond");
        identifiers.add("yp1.yp1.6b_STORETMHOUR");
        identifiers.add("yp1.yp1.6b_STORETMMinute");
        identifiers.add("yp1.yp1.6b_STORETMSec");
        identifiers.add("yp1.yp1.6b_OUTPROCESS");
        identifiers.add("yp1.yp1.6b_PRESWEIGHT");

        //贮叶柜

        identifiers.add("yp2.yp2.1a_BRANDID");
        identifiers.add("yp2.yp2.1a_BATCH");
        identifiers.add("yp2.yp2.1a_INOUTSTATUS");
        identifiers.add("yp2.yp2.1a_TotalWeigh");
        identifiers.add("yp2.yp2.1a_In_EndYear");
        identifiers.add("yp2.yp2.1a_IN_ENDMonth");
        identifiers.add("yp2.yp2.1a_IN_ENDDay");
        identifiers.add("yp2.yp2.1a_IN_ENDHour");
        identifiers.add("yp2.yp2.1a_IN_ENDMinute");
        identifiers.add("yp2.yp2.1a_IN_ENDSecond");
        identifiers.add("yp2.yp2.1a_OUT_BEGYear");
        identifiers.add("yp2.yp2.1a_OUT_BEGMonth");
        identifiers.add("yp2.yp2.1a_OUT_BEGDay");
        identifiers.add("yp2.yp2.1a_OUT_BEGHour");
        identifiers.add("yp2.yp2.1a_OUT_BEGMinute");
        identifiers.add("yp2.yp2.1a_OUT_BEGSecond");
        identifiers.add("yp2.yp2.1a_STORETMHOUR");
        identifiers.add("yp2.yp2.1a_STORETMMinute");
        identifiers.add("yp2.yp2.1a_STORETMSec");
        identifiers.add("yp2.yp2.1a_OUTPROCESS");
        identifiers.add("yp2.yp2.1a_PRESWEIGHT");
        identifiers.add("yp2.yp2.1b_BRANDID");
        identifiers.add("yp2.yp2.1b_BATCH");
        identifiers.add("yp2.yp2.1b_INOUTSTATUS");
        identifiers.add("yp2.yp2.1b_TotalWeigh");
        identifiers.add("yp2.yp2.1b_In_EndYear");
        identifiers.add("yp2.yp2.1b_IN_ENDMonth");
        identifiers.add("yp2.yp2.1b_IN_ENDDay");
        identifiers.add("yp2.yp2.1b_IN_ENDHour");
        identifiers.add("yp2.yp2.1b_IN_ENDMinute");
        identifiers.add("yp2.yp2.1b_IN_ENDSecond");
        identifiers.add("yp2.yp2.1b_OUT_BEGYear");
        identifiers.add("yp2.yp2.1b_OUT_BEGMonth");
        identifiers.add("yp2.yp2.1b_OUT_BEGDay");
        identifiers.add("yp2.yp2.1b_OUT_BEGHour");
        identifiers.add("yp2.yp2.1b_OUT_BEGMinute");
        identifiers.add("yp2.yp2.1b_OUT_BEGSecond");
        identifiers.add("yp2.yp2.1b_STORETMHOUR");
        identifiers.add("yp2.yp2.1b_STORETMMinute");
        identifiers.add("yp2.yp2.1b_STORETMSec");
        identifiers.add("yp2.yp2.1b_OUTPROCESS");
        identifiers.add("yp2.yp2.1b_PRESWEIGHT");
        identifiers.add("yp2.yp2.2a_BRANDID");
        identifiers.add("yp2.yp2.2a_BATCH");
        identifiers.add("yp2.yp2.2a_INOUTSTATUS");
        identifiers.add("yp2.yp2.2a_TotalWeigh");
        identifiers.add("yp2.yp2.2a_In_EndYear");
        identifiers.add("yp2.yp2.2a_IN_ENDMonth");
        identifiers.add("yp2.yp2.2a_IN_ENDDay");
        identifiers.add("yp2.yp2.2a_IN_ENDHour");
        identifiers.add("yp2.yp2.2a_IN_ENDMinute");
        identifiers.add("yp2.yp2.2a_IN_ENDSecond");
        identifiers.add("yp2.yp2.2a_OUT_BEGYear");
        identifiers.add("yp2.yp2.2a_OUT_BEGMonth");
        identifiers.add("yp2.yp2.2a_OUT_BEGDay");
        identifiers.add("yp2.yp2.2a_OUT_BEGHour");
        identifiers.add("yp2.yp2.2a_OUT_BEGMinute");
        identifiers.add("yp2.yp2.2a_OUT_BEGSecond");
        identifiers.add("yp2.yp2.2a_STORETMHOUR");
        identifiers.add("yp2.yp2.2a_STORETMMinute");
        identifiers.add("yp2.yp2.2a_STORETMSec");
        identifiers.add("yp2.yp2.2a_OUTPROCESS");
        identifiers.add("yp2.yp2.2a_PRESWEIGHT");
        identifiers.add("yp2.yp2.2b_BRANDID");
        identifiers.add("yp2.yp2.2b_BATCH");
        identifiers.add("yp2.yp2.2b_INOUTSTATUS");
        identifiers.add("yp2.yp2.2b_TotalWeigh");
        identifiers.add("yp2.yp2.2b_In_EndYear");
        identifiers.add("yp2.yp2.2b_IN_ENDMonth");
        identifiers.add("yp2.yp2.2b_IN_ENDDay");
        identifiers.add("yp2.yp2.2b_IN_ENDHour");
        identifiers.add("yp2.yp2.2b_IN_ENDMinute");
        identifiers.add("yp2.yp2.2b_IN_ENDSecond");
        identifiers.add("yp2.yp2.2b_OUT_BEGYear");
        identifiers.add("yp2.yp2.2b_OUT_BEGMonth");
        identifiers.add("yp2.yp2.2b_OUT_BEGDay");
        identifiers.add("yp2.yp2.2b_OUT_BEGHour");
        identifiers.add("yp2.yp2.2b_OUT_BEGMinute");
        identifiers.add("yp2.yp2.2b_OUT_BEGSecond");
        identifiers.add("yp2.yp2.2b_STORETMHOUR");
        identifiers.add("yp2.yp2.2b_STORETMMinute");
        identifiers.add("yp2.yp2.2b_STORETMSec");
        identifiers.add("yp2.yp2.2b_OUTPROCESS");
        identifiers.add("yp2.yp2.2b_PRESWEIGHT");
        identifiers.add("yp2.yp2.3a_BRANDID");
        identifiers.add("yp2.yp2.3a_BATCH");
        identifiers.add("yp2.yp2.3a_INOUTSTATUS");
        identifiers.add("yp2.yp2.3a_TotalWeigh");
        identifiers.add("yp2.yp2.3a_In_EndYear");
        identifiers.add("yp2.yp2.3a_IN_ENDMonth");
        identifiers.add("yp2.yp2.3a_IN_ENDDay");
        identifiers.add("yp2.yp2.3a_IN_ENDHour");
        identifiers.add("yp2.yp2.3a_IN_ENDMinute");
        identifiers.add("yp2.yp2.3a_IN_ENDSecond");
        identifiers.add("yp2.yp2.3a_OUT_BEGYear");
        identifiers.add("yp2.yp2.3a_OUT_BEGMonth");
        identifiers.add("yp2.yp2.3a_OUT_BEGDay");
        identifiers.add("yp2.yp2.3a_OUT_BEGHour");
        identifiers.add("yp2.yp2.3a_OUT_BEGMinute");
        identifiers.add("yp2.yp2.3a_OUT_BEGSecond");
        identifiers.add("yp2.yp2.3a_STORETMHOUR");
        identifiers.add("yp2.yp2.3a_STORETMMinute");
        identifiers.add("yp2.yp2.3a_STORETMSec");
        identifiers.add("yp2.yp2.3a_OUTPROCESS");
        identifiers.add("yp2.yp2.3a_PRESWEIGHT");
        identifiers.add("yp2.yp2.3b_BRANDID");
        identifiers.add("yp2.yp2.3b_BATCH");
        identifiers.add("yp2.yp2.3b_INOUTSTATUS");
        identifiers.add("yp2.yp2.3b_TotalWeigh");
        identifiers.add("yp2.yp2.3b_In_EndYear");
        identifiers.add("yp2.yp2.3b_IN_ENDMonth");
        identifiers.add("yp2.yp2.3b_IN_ENDDay");
        identifiers.add("yp2.yp2.3b_IN_ENDHour");
        identifiers.add("yp2.yp2.3b_IN_ENDMinute");
        identifiers.add("yp2.yp2.3b_IN_ENDSecond");
        identifiers.add("yp2.yp2.3b_OUT_BEGYear");
        identifiers.add("yp2.yp2.3b_OUT_BEGMonth");
        identifiers.add("yp2.yp2.3b_OUT_BEGDay");
        identifiers.add("yp2.yp2.3b_OUT_BEGHour");
        identifiers.add("yp2.yp2.3b_OUT_BEGMinute");
        identifiers.add("yp2.yp2.3b_OUT_BEGSecond");
        identifiers.add("yp2.yp2.3b_STORETMHOUR");
        identifiers.add("yp2.yp2.3b_STORETMMinute");
        identifiers.add("yp2.yp2.3b_STORETMSec");
        identifiers.add("yp2.yp2.3b_OUTPROCESS");
        identifiers.add("yp2.yp2.3b_PRESWEIGHT");
        identifiers.add("yp2.yp2.4a_BRANDID");
        identifiers.add("yp2.yp2.4a_BATCH");
        identifiers.add("yp2.yp2.4a_INOUTSTATUS");
        identifiers.add("yp2.yp2.4a_TotalWeigh");
        identifiers.add("yp2.yp2.4a_In_EndYear");
        identifiers.add("yp2.yp2.4a_IN_ENDMonth");
        identifiers.add("yp2.yp2.4a_IN_ENDDay");
        identifiers.add("yp2.yp2.4a_IN_ENDHour");
        identifiers.add("yp2.yp2.4a_IN_ENDMinute");
        identifiers.add("yp2.yp2.4a_IN_ENDSecond");
        identifiers.add("yp2.yp2.4a_OUT_BEGYear");
        identifiers.add("yp2.yp2.4a_OUT_BEGMonth");
        identifiers.add("yp2.yp2.4a_OUT_BEGDay");
        identifiers.add("yp2.yp2.4a_OUT_BEGHour");
        identifiers.add("yp2.yp2.4a_OUT_BEGMinute");
        identifiers.add("yp2.yp2.4a_OUT_BEGSecond");
        identifiers.add("yp2.yp2.4a_STORETMHOUR");
        identifiers.add("yp2.yp2.4a_STORETMMinute");
        identifiers.add("yp2.yp2.4a_STORETMSec");
        identifiers.add("yp2.yp2.4a_OUTPROCESS");
        identifiers.add("yp2.yp2.4a_PRESWEIGHT");
        identifiers.add("yp2.yp2.4b_BRANDID");
        identifiers.add("yp2.yp2.4b_BATCH");
        identifiers.add("yp2.yp2.4b_INOUTSTATUS");
        identifiers.add("yp2.yp2.4b_TotalWeigh");
        identifiers.add("yp2.yp2.4b_In_EndYear");
        identifiers.add("yp2.yp2.4b_IN_ENDMonth");
        identifiers.add("yp2.yp2.4b_IN_ENDDay");
        identifiers.add("yp2.yp2.4b_IN_ENDHour");
        identifiers.add("yp2.yp2.4b_IN_ENDMinute");
        identifiers.add("yp2.yp2.4b_IN_ENDSecond");
        identifiers.add("yp2.yp2.4b_OUT_BEGYear");
        identifiers.add("yp2.yp2.4b_OUT_BEGMonth");
        identifiers.add("yp2.yp2.4b_OUT_BEGDay");
        identifiers.add("yp2.yp2.4b_OUT_BEGHour");
        identifiers.add("yp2.yp2.4b_OUT_BEGMinute");
        identifiers.add("yp2.yp2.4b_OUT_BEGSecond");
        identifiers.add("yp2.yp2.4b_STORETMHOUR");
        identifiers.add("yp2.yp2.4b_STORETMMinute");
        identifiers.add("yp2.yp2.4b_STORETMSec");
        identifiers.add("yp2.yp2.4b_OUTPROCESS");
        identifiers.add("yp2.yp2.4b_PRESWEIGHT");
        identifiers.add("yp2.yp2.5a_BRANDID");
        identifiers.add("yp2.yp2.5a_BATCH");
        identifiers.add("yp2.yp2.5a_INOUTSTATUS");
        identifiers.add("yp2.yp2.5a_TotalWeigh");
        identifiers.add("yp2.yp2.5a_In_EndYear");
        identifiers.add("yp2.yp2.5a_IN_ENDMonth");
        identifiers.add("yp2.yp2.5a_IN_ENDDay");
        identifiers.add("yp2.yp2.5a_IN_ENDHour");
        identifiers.add("yp2.yp2.5a_IN_ENDMinute");
        identifiers.add("yp2.yp2.5a_IN_ENDSecond");
        identifiers.add("yp2.yp2.5a_OUT_BEGYear");
        identifiers.add("yp2.yp2.5a_OUT_BEGMonth");
        identifiers.add("yp2.yp2.5a_OUT_BEGDay");
        identifiers.add("yp2.yp2.5a_OUT_BEGHour");
        identifiers.add("yp2.yp2.5a_OUT_BEGMinute");
        identifiers.add("yp2.yp2.5a_OUT_BEGSecond");
        identifiers.add("yp2.yp2.5a_STORETMHOUR");
        identifiers.add("yp2.yp2.5a_STORETMMinute");
        identifiers.add("yp2.yp2.5a_STORETMSec");
        identifiers.add("yp2.yp2.5a_OUTPROCESS");
        identifiers.add("yp2.yp2.5a_PRESWEIGHT");
        identifiers.add("yp2.yp2.5b_BRANDID");
        identifiers.add("yp2.yp2.5b_BATCH");
        identifiers.add("yp2.yp2.5b_INOUTSTATUS");
        identifiers.add("yp2.yp2.5b_TotalWeigh");
        identifiers.add("yp2.yp2.5b_In_EndYear");
        identifiers.add("yp2.yp2.5b_IN_ENDMonth");
        identifiers.add("yp2.yp2.5b_IN_ENDDay");
        identifiers.add("yp2.yp2.5b_IN_ENDHour");
        identifiers.add("yp2.yp2.5b_IN_ENDMinute");
        identifiers.add("yp2.yp2.5b_IN_ENDSecond");
        identifiers.add("yp2.yp2.5b_OUT_BEGYear");
        identifiers.add("yp2.yp2.5b_OUT_BEGMonth");
        identifiers.add("yp2.yp2.5b_OUT_BEGDay");
        identifiers.add("yp2.yp2.5b_OUT_BEGHour");
        identifiers.add("yp2.yp2.5b_OUT_BEGMinute");
        identifiers.add("yp2.yp2.5b_OUT_BEGSecond");
        identifiers.add("yp2.yp2.5b_STORETMHOUR");
        identifiers.add("yp2.yp2.5b_STORETMMinute");
        identifiers.add("yp2.yp2.5b_STORETMSec");
        identifiers.add("yp2.yp2.5b_OUTPROCESS");
        identifiers.add("yp2.yp2.5b_PRESWEIGHT");
        identifiers.add("yp2.yp2.6a_BRANDID");
        identifiers.add("yp2.yp2.6a_BATCH");
        identifiers.add("yp2.yp2.6a_INOUTSTATUS");
        identifiers.add("yp2.yp2.6a_TotalWeigh");
        identifiers.add("yp2.yp2.6a_In_EndYear");
        identifiers.add("yp2.yp2.6a_IN_ENDMonth");
        identifiers.add("yp2.yp2.6a_IN_ENDDay");
        identifiers.add("yp2.yp2.6a_IN_ENDHour");
        identifiers.add("yp2.yp2.6a_IN_ENDMinute");
        identifiers.add("yp2.yp2.6a_IN_ENDSecond");
        identifiers.add("yp2.yp2.6a_OUT_BEGYear");
        identifiers.add("yp2.yp2.6a_OUT_BEGMonth");
        identifiers.add("yp2.yp2.6a_OUT_BEGDay");
        identifiers.add("yp2.yp2.6a_OUT_BEGHour");
        identifiers.add("yp2.yp2.6a_OUT_BEGMinute");
        identifiers.add("yp2.yp2.6a_OUT_BEGSecond");
        identifiers.add("yp2.yp2.6a_STORETMHOUR");
        identifiers.add("yp2.yp2.6a_STORETMMinute");
        identifiers.add("yp2.yp2.6a_STORETMSec");
        identifiers.add("yp2.yp2.6a_OUTPROCESS");
        identifiers.add("yp2.yp2.6a_PRESWEIGHT");
        identifiers.add("yp2.yp2.6b_BRANDID");
        identifiers.add("yp2.yp2.6b_BATCH");
        identifiers.add("yp2.yp2.6b_INOUTSTATUS");
        identifiers.add("yp2.yp2.6b_TotalWeigh");
        identifiers.add("yp2.yp2.6b_In_EndYear");
        identifiers.add("yp2.yp2.6b_IN_ENDMonth");
        identifiers.add("yp2.yp2.6b_IN_ENDDay");
        identifiers.add("yp2.yp2.6b_IN_ENDHour");
        identifiers.add("yp2.yp2.6b_IN_ENDMinute");
        identifiers.add("yp2.yp2.6b_IN_ENDSecond");
        identifiers.add("yp2.yp2.6b_OUT_BEGYear");
        identifiers.add("yp2.yp2.6b_OUT_BEGMonth");
        identifiers.add("yp2.yp2.6b_OUT_BEGDay");
        identifiers.add("yp2.yp2.6b_OUT_BEGHour");
        identifiers.add("yp2.yp2.6b_OUT_BEGMinute");
        identifiers.add("yp2.yp2.6b_OUT_BEGSecond");
        identifiers.add("yp2.yp2.6b_STORETMHOUR");
        identifiers.add("yp2.yp2.6b_STORETMMinute");
        identifiers.add("yp2.yp2.6b_STORETMSec");
        identifiers.add("yp2.yp2.6b_OUTPROCESS");
        identifiers.add("yp2.yp2.6b_PRESWEIGHT");


        //增加的检验状态和物料水分
        identifiers.add("cs.cs.1a_CheckStatus");
        identifiers.add("cs.cs.2a_CheckStatus");
        identifiers.add("cs.cs.3a_CheckStatus");
        identifiers.add("cs.cs.4a_CheckStatus");
        identifiers.add("cs.cs.5a_CheckStatus");
        identifiers.add("cs.cs.6a_CheckStatus");
        identifiers.add("cs.cs.7a_CheckStatus");
        identifiers.add("cs.cs.8a_CheckStatus");
        identifiers.add("cs.cs.9a_CheckStatus");
        identifiers.add("cs.cs.10a_CheckStatus");
        identifiers.add("cs.cs.11a_CheckStatus");
        identifiers.add("cs.cs.12a_CheckStatus");
        identifiers.add("cs.cs.13a_CheckStatus");
        identifiers.add("cs.cs.14a_CheckStatus");
        identifiers.add("cs.cs.15a_CheckStatus");
        identifiers.add("cs.cs.16a_CheckStatus");
        identifiers.add("cs.cs.17a_CheckStatus");
        identifiers.add("cs.cs.18a_CheckStatus");
        identifiers.add("cp2.cp2.19a_CheckStatus");
        identifiers.add("cp2.cp2.20a_CheckStatus");
        identifiers.add("cs.cs.1b_CheckStatus");
        identifiers.add("cs.cs.2b_CheckStatus");
        identifiers.add("cs.cs.3b_CheckStatus");
        identifiers.add("cs.cs.4b_CheckStatus");
        identifiers.add("cs.cs.5b_CheckStatus");
        identifiers.add("cs.cs.6b_CheckStatus");
        identifiers.add("cs.cs.7b_CheckStatus");
        identifiers.add("cs.cs.8b_CheckStatus");
        identifiers.add("cs.cs.9b_CheckStatus");
        identifiers.add("cs.cs.10b_CheckStatus");
        identifiers.add("cs.cs.11b_CheckStatus");
        identifiers.add("cs.cs.12b_CheckStatus");
        identifiers.add("cs.cs.13b_CheckStatus");
        identifiers.add("cs.cs.14b_CheckStatus");
        identifiers.add("cs.cs.15b_CheckStatus");
        identifiers.add("cs.cs.16b_CheckStatus");
        identifiers.add("cs.cs.17b_CheckStatus");
        identifiers.add("cs.cs.18b_CheckStatus");
        identifiers.add("cp2.cp2.19b_CheckStatus");
        identifiers.add("cp2.cp2.20b_CheckStatus");
        identifiers.add("yp1.yp1.1a_MaterialWater");
        identifiers.add("yp1.yp1.2a_MaterialWater");
        identifiers.add("yp1.yp1.3a_MaterialWater");
        identifiers.add("yp1.yp1.4a_MaterialWater");
        identifiers.add("yp1.yp1.5a_MaterialWater");
        identifiers.add("yp1.yp1.6a_MaterialWater");
        identifiers.add("yp1.yp1.1b_MaterialWater");
        identifiers.add("yp1.yp1.2b_MaterialWater");
        identifiers.add("yp1.yp1.3b_MaterialWater");
        identifiers.add("yp1.yp1.4b_MaterialWater");
        identifiers.add("yp1.yp1.5b_MaterialWater");
        identifiers.add("yp1.yp1.6b_MaterialWater");
        identifiers.add("yp1.yp1.6a_MaterialWater");
        identifiers.add("yp2.yp2.1a_MaterialWater");
        identifiers.add("yp2.yp2.2a_MaterialWater");
        identifiers.add("yp2.yp2.3a_MaterialWater");
        identifiers.add("yp2.yp2.4a_MaterialWater");
        identifiers.add("yp2.yp2.5a_MaterialWater");
        identifiers.add("yp2.yp2.6a_MaterialWater");
        identifiers.add("yp2.yp2.1b_MaterialWater");
        identifiers.add("yp2.yp2.2b_MaterialWater");
        identifiers.add("yp2.yp2.3b_MaterialWater");
        identifiers.add("yp2.yp2.4b_MaterialWater");
        identifiers.add("yp2.yp2.5b_MaterialWater");
        identifiers.add("yp2.yp2.6b_MaterialWater");

//        identifiers.add("通道 1.设备 1.标记 2");
        identifiers.add("yp2.cs.VB_10");
//        identifiers.add("通道 1.设备 1.标记 1");
        return identifiers;
    }

    /**
     * 处理订阅业务
     *
     * @param client OPC UA客户端
     */
    private void handlerNode(OpcUaClient client) {
        try {
            //创建订阅
            ManagedSubscription subscription = ManagedSubscription.create(client);
            List<NodeId> nodeIdList = new ArrayList<>();

            for (String id : identifiers) {
                nodeIdList.add(new NodeId(batchNamespaceIndex, id));
            }
            //监听
            List<ManagedDataItem> dataItemList = subscription.createDataItems(nodeIdList);

            for (ManagedDataItem managedDataItem : dataItemList) {

                managedDataItem.addDataValueListener((t) -> {
                    String identifier = managedDataItem.getNodeId().getIdentifier().toString();
                    String value = "";

                    //处理为空的情况
                    if(t != null && t.getValue() != null && t.getValue().getValue() != null){
                        value = t.getValue().getValue().toString();
                        log.info("监听变量和值分别为：{}，{}", identifier,value);
                    }
//                    cacheHelper.stringSet(identifier,value);

                    //获取注入的service
                    if(opcTagValueService == null){
                        opcTagValueService = applicationContext.getBean(OpcTagValueService.class);
                    }
                    //将数据入库
//判断是更新还是插入新数据
                    OpcTagValue opcTagValueOld = opcTagValueService.selectOne("tag_name",identifier);
                    //更新数据
                    if(opcTagValueOld != null){
                        log.info("更新  点位数据，点位：{}，更新后值为：{}",identifier,value);
                        opcTagValueOld.setValue(value);
                        opcTagValueService.update(opcTagValueOld);
                        //更新缓存
//                        log.warn("aaaaaaaaaaaaaaaaaaaaaaaaaa更新缓存：{}，{}",identifier,value);
                        cacheHelper.stringSet(identifier,value);

                        //如果查询的值为空，则延迟10秒钟，每隔5分钟=300秒执行一次，重新订阅
                        if(value == null || "".equals(value)){
                            startTask(10,300,client);
                        }else{
                            cancelTask();
                        }
                    }else{//插入新数据
                        log.info("插入  点位数据，点位：{}，更新后值为：{}",identifier,value);
                        OpcTagValue opcTagValue = new OpcTagValue();
                        opcTagValue.setTagName(identifier);
                        opcTagValue.setValue(value);
                        opcTagValueService.insert(opcTagValue);
                        //更新缓存
//                        log.warn("bbbbbbbbbbbbbbbbbbbbbbbbbbb插入缓存：{}，{}",identifier,value);
                        cacheHelper.stringSet(identifier,value);
                    }

                });
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**当PLC断电，订阅回来的值为空时，
     * 启动TASK（需判断是否当前已经有正在执行），
     * 当有值返回时，取消task
     *
     */
    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    private ScheduledFuture<?> future;

    public void startTask(int initialDelay, int period,OpcUaClient client) {
        if(future == null){
            future = scheduler.scheduleAtFixedRate(() -> {
                log.warn("取值为空，重新订阅");
                // 这里是你想要执行的任务
                handlerNode(client);
                System.out.println("执行任务: " + System.currentTimeMillis());
            }, initialDelay, period, TimeUnit.SECONDS);
        }
    }

    public void cancelTask() {
        if (future != null) {
            log.warn("取消重新订阅任务");
            future.cancel(false); // 参数为false时，即使任务正在执行，也会尝试取消
        }
    }

    /**
     * 自定义订阅监听
     */
    private class CustomSubscriptionListener implements UaSubscriptionManager.SubscriptionListener {

        private OpcUaClient client;


        CustomSubscriptionListener(OpcUaClient client) {
            this.client = client;
        }

        public void onKeepAlive(UaSubscription subscription, DateTime publishTime) {
            log.warn("onKeepAlive");
        }

        public void onStatusChanged(UaSubscription subscription, StatusCode status) {
            log.warn("onStatusChanged");
        }

        public void onPublishFailure(UaException exception) {
            log.warn("onPublishFailure");
        }

        public void onNotificationDataLost(UaSubscription subscription) {
            log.warn("onNotificationDataLost");
        }

        /**
         * 重连时 尝试恢复之前的订阅失败时 会调用此方法
         * @param uaSubscription 订阅
         * @param statusCode 状态
         */
        public void onSubscriptionTransferFailed(UaSubscription uaSubscription, StatusCode statusCode) {
            log.warn("恢复订阅失败 需要重新订阅");
            //在回调方法中重新订阅
            handlerNode(client);
        }
    }
    /**
     * 批量订阅
     *
     * @param client
     * @throws Exception
     */
    private void managedSubscriptionEvent(OpcUaClient client) throws Exception {
        final CountDownLatch eventLatch = new CountDownLatch(1);

        //添加订阅监听器，用于处理断线重连后的订阅问题
        client.getSubscriptionManager().addSubscriptionListener(new CustomSubscriptionListener(client));

//        client.addSessionActivityListener(new SessionActivityListener() {
//            @Override
//            public void onSessionActive(UaSession session) {
//                log.warn("OPC UA客户端连接正常，重新订阅");
//                handlerNode(client);
//            }
//
//            @Override
//            public void onSessionInactive(UaSession session) {
//
//            }
//        });


        //处理订阅业务
        handlerNode(client);

        //持续监听
        eventLatch.await();
    }

    /**
     * 转换牌别对应的字典
     * @return
     */
    private String convertBrandDict(String code){
        if("1101".equals(code)){
            return "白沙（精品二代）";
        }else if("1102".equals(code)){
            return "白沙（精品三代）";
        }else if("1103".equals(code)){
            return "白沙（绿和）";
        }else if("1104".equals(code)){
            return "芙蓉王（硬）";
        }else if("1105".equals(code)){
            return "白沙（瑞中支）";
        }else if("1106".equals(code)){
            return "芙蓉王（荣耀中支）";
        }else{
            return code;
        }
    }

    //保留百分比的两位小数
    private String convertPercentWeight(String weight){
        if(StringUtils.isEmpty(weight)){
            return "";
        }
        NumberFormat percentFormat = NumberFormat.getPercentInstance();
        percentFormat.setMinimumFractionDigits(2);
        String formattedPercentage = percentFormat.format(Double.valueOf(weight)/100);

        return  formattedPercentage;
    }

    //保留两位小数
    private String convertWeight(String weight){
        if(StringUtils.isEmpty(weight)){
            return "";
        }
        String result = String.valueOf(Math.round(Double.valueOf(weight) * 100) / 100.0);
        return result + "KG";
    }

    //拼接年月日时分秒日期
    private String convertDate(String year,String month,String day,String hour,String minute,String second){
        return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
    }


    //拼接时分秒时间
    private String convertTime(String hour,String minute,String second){
        return hour + "时" + minute + "分" + second + "秒";
    }

    /**
     * 转换检验状态的字典
     * @return
     */
    private String convertCheckStatusDict(String code){
        if("1".equals(code)){
            return "合格";
        }else if("0".equals(code)){
            return "不合格";
        }else{
            return code;
        }
    }
    /**
     * 转换牌别对应的字典
     * @return
     */
    private String convertStatusDict(String code){
        if("1".equals(code)){
            return "进料";
        }else if("2".equals(code)){
            return "贮料";
        }else if("3".equals(code)){
            return "出料";
        }else if("4".equals(code)){
            return "边进边出";
        }else if("5".equals(code)){
            return "待料";
        }else{
            return code;
        }
    }

    public void start() throws Exception{
        //获得节点变量
        identifiers = getIdentifiers();

        OpcUaClient client = createClient("","");
        client.connect().get();
        managedSubscriptionEvent(client);
    }


    public static void main(String[] args) throws Exception {
//        System.out.println(convertPercentWeight("0.554"));
//        System.out.println(convertWeight("4.555"));
//        OpcUaClient client = createClient("","");
//        client.connect().get();
//        browseNode(client,null);
//        readNode(client);
//        writeNodeValue(client);
//        subscribe(client);
//      managedSubscriptionEvent(client);
    }
}
